`, are available. Each class sets `font-s
You can easily add an icon with your font reference using [our icon size utilities]([[docsref:/components/icon#icons-size]]).
+
+ A brand-colored marker can be displayed below the heading large (`
` or `.h2`) to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
+ h2. OUDS Web heading with marker
OUDS Web is evolving with each release to better utilize CSS variables for global theme styles, individual
components, and even utilities. We provide dozens of variables for colors, font styles, and more at a
Override global, component, or utility class variables to customize OUDS Web just how you like. No need to
redeclare each rule, just a new variable value.
diff --git a/site/src/components/home/Customize.astro b/site/src/components/home/Customize.astro
index 043c067d5a..63c08e2b28 100644
--- a/site/src/components/home/Customize.astro
+++ b/site/src/components/home/Customize.astro
@@ -10,7 +10,7 @@ import Code from '@components/shortcodes/Code.astro'
-
Customize everything with Sass
+
Customize everything with Sass
OUDS Web utilizes Sass for a modular and customizable architecture. Import only the components you need, enable
global options like gradients and shadows, and write your own CSS with our variables, maps, functions, and mixins.
@@ -21,7 +21,7 @@ import Code from '@components/shortcodes/Code.astro'
-
Include all of OUDS Web's Sass
+
Include all of OUDS Web's Sass
Import one stylesheet and you're off to the races with every feature of our CSS.
-
Include what you need
+
Include what you need
The easiest way to customize OUDS Web—include only the CSS you need.
-
Get started any way you want
+
Get started any way you want
Jump right into building with OUDS Web—use the CDN, install it via package manager, or download the source code.
@@ -19,7 +19,7 @@ import Code from '@components/shortcodes/Code.astro'
-
Install via package manager
+
Install via package manager
Install OUDS Web's source files via npm, yarn, Composer, or NuGet. Package-managed installs include OUDS Web common Sass and
JavaScript files and OUDS Web {getConfig().display_brand} theme (Sass files). They don't include documentation or our full build
@@ -38,7 +38,7 @@ import Code from '@components/shortcodes/Code.astro'
package managers.
-
Include via CDN
+
Include via CDN
When you only need to include OUDS Web's compiled CSS or JS, you can use jsDelivrh2. OUDS Web heading with marker
`} />
-
-
-
## Display headings
Traditional heading elements are designed to work best in the meat of your page content. When you need a heading to stand out, consider using a **display heading**—a larger, slightly more opinionated heading style.
From dd2d86abe72855976d4e74f6fe9ebc6554be70c0 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 28 Aug 2026 15:58:01 +0200
Subject: [PATCH 04/52] Enhance doc
---
site/src/content/docs/foundation/typography.mdx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/site/src/content/docs/foundation/typography.mdx b/site/src/content/docs/foundation/typography.mdx
index af846858e8..0e56830620 100644
--- a/site/src/content/docs/foundation/typography.mdx
+++ b/site/src/content/docs/foundation/typography.mdx
@@ -163,8 +163,11 @@ All HTML headings, `
` through `
`, are available. Each class sets `font-s
You can easily add an icon with your font reference using [our icon size utilities]([[docsref:/components/icon#icons-size]]).
+
- A brand-colored marker can be displayed below the heading large (`
` or `.h2`) to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
+ ### Headings with marker
+
+ A brand-colored marker can be displayed below the heading large (`
` or `.h2`), to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
h2. OUDS Web heading with marker
OUDS Web is evolving with each release to better utilize CSS variables for global theme styles, individual
components, and even utilities. We provide dozens of variables for colors, font styles, and more at a
-
Customize everything with Sass
+
Customize everything with Sass
OUDS Web utilizes Sass for a modular and customizable architecture. Import only the components you need, enable
global options like gradients and shadows, and write your own CSS with our variables, maps, functions, and mixins.
diff --git a/site/src/components/home/GetStarted.astro b/site/src/components/home/GetStarted.astro
index 548fa55539..8a93b09cb6 100644
--- a/site/src/components/home/GetStarted.astro
+++ b/site/src/components/home/GetStarted.astro
@@ -10,7 +10,7 @@ import Code from '@components/shortcodes/Code.astro'
-
Get started any way you want
+
Get started any way you want
Jump right into building with OUDS Web—install it via your favorite package manager, or equip your AI coding agent with ready-to-use Skills.
@@ -576,7 +577,7 @@ Here are some examples with everything activated and some long texts to see how
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec risus et risus consectetur dignissim volutpat ut lorem. Aenean posuere elementum massa, ac elementum magna auctor quis.
`} />
@@ -582,6 +599,10 @@ You can navigate through the different assets using the tabs below.
For status icons, add `.item-icon` with one of these classes: `.item-status-positive`, `.item-status-warning`, `.item-status-info`, or `.item-status-negative`.
+
+ Please note that even if it's not recommended, we can have an image which is an icon, but it requires `.icon` class on it to behave correctly.
+
+
@@ -608,6 +629,19 @@ You can navigate through the different assets using the tabs below.
+
+
+
+
+
+
+
Label
+
+
+
+
+
+
`} />
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 12ef641aab..35928ad710 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -29,6 +29,10 @@ toc: true
- Info Alert message component has been updated to 1.2.0. Read more in the [alert message design changelog](https://r.orange.fr/r/S-ouds-doc-alert-message_changelog).
+#### Items
+
+- Warning Items components have been updated to 1.2.0. Please check that your icons and images in the leading/trailing containers keep behaving as normal. Read more in the [list item design changelog](https://r.orange.fr/r/S-ouds-doc-list-item_changelog).
+
## v1.5.0 [[version-changelog-link]]
From 8784c6b5e1dc32160bbbebbfbe6fb1cbd51f8ff7 Mon Sep 17 00:00:00 2001
From: Louis-Maxime Piton
Date: Thu, 1 Oct 2026 12:06:51 +0200
Subject: [PATCH 19/52] Fix to avoid a warning
Co-authored-by: Maxime Lardenois
---
scss/_items.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scss/_items.scss b/scss/_items.scss
index 82936cd4c9..f6bfc015fa 100644
--- a/scss/_items.scss
+++ b/scss/_items.scss
@@ -27,7 +27,7 @@
display: flex;
column-gap: $ouds-list-item-space-column-gap;
align-items: var(--#{$prefix}list-item-align-items, center);
- min-height: calc(var(--#{$prefix}list-item-min-height, $ouds-list-item-size-min-height-default) - 2 * var(--#{$prefix}list-item-border-width, $ouds-list-item-border-width-default / 2));
+ min-height: calc(var(--#{$prefix}list-item-min-height, $ouds-list-item-size-min-height-default) - 2 * var(--#{$prefix}list-item-border-width, calc($ouds-list-item-border-width-default / 2)));
padding: calc(var(--#{$prefix}list-item-padding-top, $ouds-list-item-space-padding-block-default) - var(--#{$prefix}list-item-border-width, 0px)) calc($ouds-list-item-space-padding-inline - var(--#{$prefix}list-item-border-width, 0px)) calc(var(--#{$prefix}list-item-padding-bottom, $ouds-list-item-space-padding-block-default) - var(--#{$prefix}list-item-border-width, $ouds-list-item-border-width-default));
}
From 587f2a4e70d20b946554cc550da86784e44cf463 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 2 Oct 2026 15:50:21 +0200
Subject: [PATCH 20/52] feat: Update buttons components to tokens v2.7 (#3826)
Co-authored-by: Maxime Lardenois
Co-authored-by: Vincent Prothais
---
scss/_buttons.scss | 4 +-
.../__snapshots__/ouds-web-bootstrap.css | 9 +-
.../snapshot-tests/__snapshots__/ouds-web.css | 9 +-
site/data/_components-versions.yml | 4 +-
site/src/content/docs/components/buttons.mdx | 152 +++++++-----------
.../docs/getting-started/migration.mdx | 10 +-
6 files changed, 80 insertions(+), 108 deletions(-)
diff --git a/scss/_buttons.scss b/scss/_buttons.scss
index d0793dd602..4b7c4c724b 100644
--- a/scss/_buttons.scss
+++ b/scss/_buttons.scss
@@ -64,10 +64,9 @@
align-items: center; // OUDS mod
justify-content: center; // OUDS mod
min-width: var(--#{$prefix}btn-min-width); // OUDS mod
+ max-width: px-to-rem($ouds-button-size-max-width);
min-height: var(--#{$prefix}btn-min-height); // OUDS mod
padding: calc(var(--#{$prefix}btn-padding-y) - var(--#{$prefix}btn-border-width)) calc(var(--#{$prefix}btn-padding-end) - var(--#{$prefix}btn-border-width)) calc(var(--#{$prefix}btn-padding-y) - var(--#{$prefix}btn-border-width)) calc(var(--#{$prefix}btn-padding-start) - var(--#{$prefix}btn-border-width)); // OUDS mod: instead of `var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x)`
- // OUDS mod: no font-family
- @include get-font-size("label-large"); // OUDS mod
font-weight: var(--#{$prefix}btn-font-weight);
// OUDS mod: no line-height, already defined by get-font-size
color: var(--#{$prefix}btn-color);
@@ -78,6 +77,7 @@
cursor: if($enable-button-pointers, pointer, null);
user-select: none;
border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
+ @include get-font-size("label-large");
@include border-radius(var(--#{$prefix}btn-border-radius));
@include gradient-bg(var(--#{$prefix}btn-bg));
// OUDS mod: no box-shadow
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index 0975a9745e..6ae1914fe8 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -8065,12 +8065,9 @@ ol.bullet-list > li > ol > li > ol > li::before {
align-items: center;
justify-content: center;
min-width: var(--bs-btn-min-width);
+ max-width: 30rem;
min-height: var(--bs-btn-min-height);
padding: calc(var(--bs-btn-padding-y) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-end) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-y) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-start) - var(--bs-btn-border-width));
- font-size: var(--bs-font-size-label-large);
- line-height: var(--bs-font-line-height-label-large);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-label-large);
font-weight: var(--bs-btn-font-weight);
color: var(--bs-btn-color);
text-align: center;
@@ -8080,6 +8077,10 @@ ol.bullet-list > li > ol > li > ol > li::before {
-webkit-user-select: none;
user-select: none;
border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+ font-size: var(--bs-font-size-label-large);
+ line-height: var(--bs-font-line-height-label-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-label-large);
border-radius: var(--bs-btn-border-radius);
background-color: var(--bs-btn-bg);
}
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index b9cc8e9474..e40aef3994 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -6048,12 +6048,9 @@ ol.bullet-list > li > ol > li > ol > li::before {
align-items: center;
justify-content: center;
min-width: var(--bs-btn-min-width);
+ max-width: 30rem;
min-height: var(--bs-btn-min-height);
padding: calc(var(--bs-btn-padding-y) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-end) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-y) - var(--bs-btn-border-width)) calc(var(--bs-btn-padding-start) - var(--bs-btn-border-width));
- font-size: var(--bs-font-size-label-large);
- line-height: var(--bs-font-line-height-label-large);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-label-large);
font-weight: var(--bs-btn-font-weight);
color: var(--bs-btn-color);
text-align: center;
@@ -6063,6 +6060,10 @@ ol.bullet-list > li > ol > li > ol > li::before {
-webkit-user-select: none;
user-select: none;
border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+ font-size: var(--bs-font-size-label-large);
+ line-height: var(--bs-font-line-height-label-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-label-large);
border-radius: var(--bs-btn-border-radius);
background-color: var(--bs-btn-bg);
}
diff --git a/site/data/_components-versions.yml b/site/data/_components-versions.yml
index b8af106b95..b1eed33bde 100644
--- a/site/data/_components-versions.yml
+++ b/site/data/_components-versions.yml
@@ -13,7 +13,7 @@
- name: 'app-bar'
value: '1.0.0'
- name: 'assistant-button'
- value: '1.0.0'
+ value: '1.1.0'
- name: 'assistant-icon'
value: '1.0.0'
- name: 'badge'
@@ -115,4 +115,4 @@
- name: 'toolbar-top'
value: '1.1.0'
- name: 'typography'
- value: '1.1.0'
\ No newline at end of file
+ value: '1.1.0'
diff --git a/site/src/content/docs/components/buttons.mdx b/site/src/content/docs/components/buttons.mdx
index 5ffee76dd5..bbc33c8643 100644
--- a/site/src/content/docs/components/buttons.mdx
+++ b/site/src/content/docs/components/buttons.mdx
@@ -11,13 +11,11 @@ types:
---
import { getData } from '@libs/data'
-import { getConfig } from '@libs/config'
import { getVersionedDocsPath } from '@libs/path'
-import { getMode } from '@libs/sass-variables'
+import { getMode, getTokenValue } from '@libs/sass-variables'
-{/* TODO: update link when the assistant button design spec is online https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/issues/3734 */}
- You can find the OUDS design guidelines here: [button guidelines](https://r.orange.fr/r/S-ouds-doc-button), [navigation button guidelines](https://r.orange.fr/r/S-ouds-doc-navigation-button).
+ You can find the OUDS design guidelines here: [button guidelines](https://r.orange.fr/r/S-ouds-doc-button), [navigation button guidelines](https://r.orange.fr/r/S-ouds-doc-navigation-button), [assistant button guidelines](https://r.orange.fr/r/S-ouds-doc-assistant-button).
## Overview
@@ -687,72 +685,6 @@ Buttons are available in two sizes. Add `.btn-small` to have a smaller button.
Downloading file 3
`} />
-### Layout
-
-#### Block buttons
-
-Create responsive stacks of full-width, "block buttons" with a mix of our display and gap utilities. By using utilities instead of button-specific classes, we have much greater control over spacing, alignment, and responsive behaviors.
-
-Please note that these **full-width** buttons should not be used on desktop screens.
-
-
-
- Button
-
- Button
-
- `} />
-
-Here we create a responsive variation, starting with vertically stacked buttons until the `md` breakpoint, where `.md:d-block` replaces the `.d-grid` class, thus nullifying the `gap-small` utility. Resize your browser to see them change.
-
-
-
- Button
-
- Button
-
- `} />
-
-You can adjust the width of your block buttons with grid column width classes. For example, for a half-width "block button", use `.col-6`. Center it horizontally with `.mx-auto`, too.
-
-
-
- Button
-
- Button
-
- `} />
-
-Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we’ve taken our previous responsive example and added some flex utilities and a margin utility on the button to right-align the buttons when they’re no longer stacked.
-
-
-
- Button
-
- Button
-
- `} />
-
-#### Text wrapping
-
-A button's text should not exceed one line, but will automatically wrap if necessary. It also natively supports ` ` tags to break the text into multiple lines. Read more about [text wrapping in a button](https://r.orange.fr/r/S-ouds-doc-button/t/b29aae8b37).
-
-If you don’t want the button text to wrap, you can add the `.text-nowrap` class to the button. In Sass, you can set `$btn-white-space: nowrap` to disable text wrapping for all buttons.
-
-
-
- The label remains centered in multiline mode with an icon
-
-
-
-
- In small contexts the button text wraps automatically to adapt its behavior
- `} />
-
## [[comp]] Navigation button
Navigation button is a UI element that enables movement between different pages within a multi-page interface. Navigation button is typically arranged in a sequence to indicate the user’s current position and provide controls for accessing previous, next, or specific pages.
@@ -917,22 +849,6 @@ Please refer to the [loading state section of the button component](#loading) fo
Previous
`} />
-### Layout
-
-#### Text wrapping
-
-A button's text should not exceed one line, but will automatically wrap if necessary. It also natively supports ` ` tags to break the text into multiple lines. Read more about [text wrapping in a button](https://r.orange.fr/r/S-ouds-doc-navigation-button/t/99e6bc9526).
-
-If you don’t want the button text to wrap, you can add the `.text-nowrap` class to the button. In Sass, you can set `$btn-white-space: nowrap` to disable text wrapping for each button.
-
-
- The label remains centered in multiline mode with an icon
-
-
-
- In small contexts the button text wraps automatically to adapt its behavior
- `} />
-
## [[comp]] Assistant button
An assistant button is a UI element that triggers an action or event featuring AI-powered capabilities, such as conversational assistance, content generation, or contextual suggestions.
@@ -1038,7 +954,6 @@ Please refer to the [loading state section of the button component](#loading) fo
`} />
-
### Sizes
Assistant buttons are available in two sizes. Add `.btn-small` to have a smaller button.
@@ -1049,19 +964,66 @@ Assistant buttons are available in two sizes. Add `.btn-small` to have a smaller
Assistant
`} />
-### Layout
+## Layout
-#### Text wrapping
+### Text wrapping
-{/* TODO: udpate link when the design spec is online https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/issues/3734 */}
-A button's text should not exceed one line, but will automatically wrap if necessary. It also natively supports ` ` tags to break the text into multiple lines. Read more about [text wrapping in a button](https://r.orange.fr/r/S-ouds-doc-navigation-button/t/99e6bc9526).
+Button's width won't exceed {(getTokenValue('$core-ouds-dimension-4000').slice(0, -2)) / 16}rem and will automatically wrap if necessary. Howerver, buttons natively support ` ` tags to break the text into multiple lines when needed. Read more about multiline and responsiveness in a [button](https://r.orange.fr/r/S-ouds-doc-button), [navigation button](https://r.orange.fr/r/S-ouds-doc-navigation-button) and [assistant button](https://r.orange.fr/r/S-ouds-doc-assistant-button).
-If you don’t want the button text to wrap, you can add the `.text-nowrap` class to the button. In Sass, you can set `$btn-white-space: nowrap` to disable text wrapping for each button.
+
+ A button will automatically wrap if the text is longer than the default max width
+
+
+
+ You can also force the text to wrap where you want
+
-
- The label remains centered in multiline mode with an icon
+
+ The label remains centered with the icon when it wraps
- In small contexts the button text wraps automatically to adapt its behavior
+ The label is centered when you force a break line too
`} />
+
+ ### Block buttons
+
+Create responsive stacks of "block buttons" with a mix of our display and gap utilities. By using utilities, we have great control over spacing, alignment, and responsive behaviors.
+
+
+
+ Button
+
+ Button
+
+ `} />
+
+Here we create a responsive variation, starting with vertically stacked buttons until the `md` breakpoint, where `.md:d-block` replaces the `.d-grid` class, thus nullifying the `gap-small` utility. Resize your browser to see them change.
+
+
+
+ Button
+
+ Button
+
+ `} />
+
+You can adjust the width of your block buttons with grid column width classes like `.col-3`. Center it horizontally with `.mx-auto`, too. Buttons will always be limited by their max-width, so they won't stretch too much on large screens.
+
+
+
+ Button
+
+ Button
+
+ `} />
+
+Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we’ve taken our previous responsive example and added some flex utilities and a margin utility on the button to right-align the buttons when they’re no longer stacked.
+
+
+
+ Button
+
+ Button
+
+ `} />
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 35928ad710..1867e26fb3 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -29,6 +29,14 @@ toc: true
- Info Alert message component has been updated to 1.2.0. Read more in the [alert message design changelog](https://r.orange.fr/r/S-ouds-doc-alert-message_changelog).
+#### Buttons
+
+- Info Button component has been updated to 3.4.0 with no changes to the HTML. Read more in the [button design changelog](https://r.orange.fr/r/S-ouds-doc-button_changelog).
+
+- Info Navigation button component has been updated to 3.4.0 with no changes to the HTML. Read more in the [navigation button design changelog](https://r.orange.fr/r/S-ouds-doc-navigation-button_changelog).
+
+- Info Assistant button component has been updated to 1.1.0 with no changes to the HTML. Read more in our [button design changelog](https://r.orange.fr/r/S-ouds-doc-button_changelog).
+
#### Items
- Warning Items components have been updated to 1.2.0. Please check that your icons and images in the leading/trailing containers keep behaving as normal. Read more in the [list item design changelog](https://r.orange.fr/r/S-ouds-doc-list-item_changelog).
@@ -55,7 +63,7 @@ toc: true
- Info Button component has been updated to 3.3.0 with no outward changes. Read more in the [button design changelog](https://r.orange.fr/r/S-ouds-doc-button_changelog).
-- Info Navigation button component has been updated to 3.3.0 with no outward changes. Read more in the [button design changelog](https://r.orange.fr/r/S-ouds-doc-button_changelog).
+- Info Navigation button component has been updated to 3.3.0 with no outward changes. Read more in the [navigation button design changelog](https://r.orange.fr/r/S-ouds-doc-navigation-button_changelog).
#### Chips
From acef91df53197bbb7c8b1a6b60ee6fa032838093 Mon Sep 17 00:00:00 2001
From: Maxime Lardenois
Date: Mon, 5 Oct 2026 09:28:17 +0200
Subject: [PATCH 21/52] freeze some components version
---
.../snapshot-tests/__snapshots__/ouds-web-bootstrap.css | 7 +------
scss/tests/snapshot-tests/__snapshots__/ouds-web.css | 7 +------
site/data/_components-versions.yml | 8 ++++----
3 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index c6a6bff59b..0a2220faa5 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -11810,14 +11810,9 @@ ol.bullet-list > li > ol > li > ol > li::before {
padding-right: 0;
}
.alert-message:has(.alert-container > .link, .alert-container > .link-chevron,
-<<<<<<< HEAD
-.alert-container > .link-external, .alert-container > .icon-link) {
- min-height: 80px;
-=======
.alert-container > .link-external,
.alert-container > .link-expand, .alert-container > .icon-link) {
- min-height: 100px;
->>>>>>> main
+ min-height: 80px;
}
.alert-message .btn-close {
border-top-right-radius: var(--bs-alert-border-radius);
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index 0ae151301b..c78b4697d5 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -9643,14 +9643,9 @@ ol.bullet-list > li > ol > li > ol > li::before {
padding-right: 0;
}
.alert-message:has(.alert-container > .link, .alert-container > .link-chevron,
-<<<<<<< HEAD
-.alert-container > .link-external) {
- min-height: 80px;
-=======
.alert-container > .link-external,
.alert-container > .link-expand) {
- min-height: 100px;
->>>>>>> main
+ min-height: 80px;
}
.alert-message .btn-close {
border-top-right-radius: var(--bs-alert-border-radius);
diff --git a/site/data/_components-versions.yml b/site/data/_components-versions.yml
index 25c58e2efd..79eac0dcbb 100644
--- a/site/data/_components-versions.yml
+++ b/site/data/_components-versions.yml
@@ -73,7 +73,7 @@
- name: 'navigation-list-item'
value: '1.2.0'
- name: 'password-input'
- value: '1.3.1'
+ value: '1.3.0'
- name: 'phone-number-input'
value: '1.3.1'
- name: 'pin-code-input'
@@ -83,7 +83,7 @@
- name: 'radio-button'
value: '1.4.0'
- name: 'select-input'
- value: '1.3.1'
+ value: '1.2.0'
- name: 'side-sheet-web'
value: '1.0.0'
- name: 'skeleton'
@@ -103,9 +103,9 @@
- name: 'tag'
value: '1.5.0'
- name: 'text-area'
- value: '1.2.1'
+ value: '1.2.0'
- name: 'text-input'
- value: '1.4.1'
+ value: '1.4.0'
- name: 'toast'
value: '1.0.0'
- name: 'toolbar'
From c8e19dfb83fbae5b1704f448107e5afd698e751b Mon Sep 17 00:00:00 2001
From: Maxime Lardenois
Date: Mon, 5 Oct 2026 14:04:19 +0200
Subject: [PATCH 22/52] add reference for expand link and button in skills
---
.../references/components/buttons.md | 21 +++++++++-
.../references/components/links.md | 39 ++++++++++++++-----
.../references/getting-started/migration.md | 5 +++
3 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/skills/using-ouds-web/references/components/buttons.md b/skills/using-ouds-web/references/components/buttons.md
index 1155099661..cfe3b628cd 100644
--- a/skills/using-ouds-web/references/components/buttons.md
+++ b/skills/using-ouds-web/references/components/buttons.md
@@ -1,6 +1,6 @@
# Buttons
-Three types: **Button**, **Navigation button**, and **Assistant button**. All use base class `.btn`.
+Four types: **Button**, **Navigation button**, **Expand button**, and **Assistant button**. All use base class `.btn`.
## Button
@@ -153,6 +153,23 @@ Add `.btn-icon`:
Same as button — add `.btn-on-colored-bg`. No `.btn-brand` on colored backgrounds.
+## Expand button
+
+Add `.btn-expand` to a button variant to show a chevron that indicates whether associated content is expanded. Set `aria-expanded` to `false` when collapsed and `true` when expanded. The chevron updates from this attribute.
+
+```html
+
+
+ Expand
+
+
+
Action
+
+
+```
+
+Use a `` for actions that expand or collapse content. When controlling a disclosure, also use `aria-controls` to reference the controlled element. `.btn-expand` can be combined with the standard button variants and `.btn-icon`.
+
## Layout
### Block buttons
@@ -169,4 +186,4 @@ Use `.d-grid` and `.gap-small` for full-width stacked buttons.
- Wrap navigation buttons in `
` and automatically inherited globally throughout OUDS Web. To switch the global `font-family`, update `$font-family-base` and recompile OUDS Web.
+This stack is applied globally. To change it, update `$font-family-base` and rebuild OUDS Web.
-The font faces are generated directly in the `_root.scss` file, based on the `$custom-font-cdn-urls` map variable. You can customize these URLs if needed (for example, to avoid loading resources from the Internet).
+Font-face rules are generated in `_root.scss` from the `$custom-font-cdn-urls` map. Update the URLs if you host the fonts elsewhere.
-The following `font-family` is applied on every code basis element. To switch the global `font-family`, update `$font-family-code` and recompile OUDS Web.
+Code elements use the monospace stack below. To change it, update `$font-family-code` and rebuild OUDS Web.
-## Headings
-
-All heading elements—`
`—`
` have their `margin-top` removed, margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} set, and `line-height` tightened. While headings inherit their `color` by default, you can also override it via optional CSS variable, `--bs-heading-color`.
-
-
-| Heading | Example |
-| --- | --- |
-| `` |
h1. OUDS Web heading
|
-| `` |
h2. OUDS Web heading
|
-| `` |
h3. OUDS Web heading
|
-| `` |
h4. OUDS Web heading
|
-| `` |
h5. OUDS Web heading
|
-| `` |
h6. OUDS Web heading
|
-
## Paragraphs
@@ -168,38 +156,81 @@ For simpler styling, clear hierarchy, and better spacing, description lists have
Definition for this other term.
`} />
-## Inline code
-Wrap inline snippets of code with ``. Be sure to escape HTML angle brackets.
+### Description list alignment
+{/* TODO See if we keep it: its just some tips to use our utilities, I don't think this is very useful here */}
-<section> should be wrapped as inline.`} />
+Align terms and descriptions horizontally by using our grid system’s predefined classes (or semantic mixins). For longer terms, you can optionally add a `.text-truncate` class to truncate the text with an ellipsis.
-## Code blocks
+
+
Description lists
+
A description list is perfect for defining terms.
-Use `
`s for multiple lines of code. Once again, be sure to escape any angle brackets in the code for proper rendering. The `
` element is reset to remove its `margin-top` and use `px` units for its `margin-bottom`.
+
Term
+
+
Definition for the term.
+
And some more placeholder definition text.
+
-<p>Sample text here...</p>
- <p>And another line of sample text here...</p>
- `} />
+
Another term
+
This definition is short, so no extra paragraphs or anything.
-## Variables
+
Truncated term is truncated
+
This can be useful when space is tight. Adds an ellipsis at the end.
-For indicating variables use the `` tag.
+
Nesting
+
+
+
Nested definition list
+
I heard you like definition lists. Let me put a definition list inside your definition list.
+
+
+ `} />
-y = mx + b`} />
+## Inline text elements
-## User input
+Styling for common inline HTML5 elements.
-Use the `` to indicate input that is typically entered via keyboard.
+You can use the mark tag to highlight text.
+
This line of text is meant to be treated as deleted text.
+
This line of text is meant to be treated as no longer accurate.
+
This line of text is meant to be treated as an addition to the document.
+
This line of text will render as underlined.
+
This line of text is meant to be treated as fine print.
+
This line rendered as bold text.
+
This line rendered as bold text too, but would natively be italicized.
`} />
-cd followed by the name of the directory.
- To edit settings, press Ctrl + ,`} />
+Beware that those tags should be used for semantic purpose:
-## Sample output
+- `` represents text which is marked or highlighted for reference or notation purposes.
+- `` represents side-comments and small print, like copyright and legal text. It uses [Regular text](#regular-texts) body small.
+- `` represents element that are no longer relevant or no longer accurate.
+- `` represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation.
-For indicating sample output from a program use the `` tag.
+If you want to style your text, you should use the following classes instead:
-This text is meant to be treated as sample output from a computer program.`} />
+- `.mark` will apply the same styles as ``.
+- `.small` will apply the same styles as ``.
+- `.text-decoration-underline` will apply the same styles as ``.
+- `.text-decoration-line-through` will apply the same styles as ``.
+
+While not shown above, feel free to use `` and `` in HTML5. `` is meant to highlight words or phrases without conveying additional importance, while `` is mostly for voice, technical terms, etc.
+
+## Code
+
+### Inline code
+
+Wrap inline snippets of code with ``. Be sure to escape HTML angle brackets.
+
+<section> should be wrapped as inline.`} />
+
+### Code blocks
+
+Use `
`s for multiple lines of code. Once again, be sure to escape any angle brackets in the code for proper rendering. The `
` element is reset to remove its `margin-top` and use `px` units for its `margin-bottom`.
+
+<p>Sample text here...</p>
+ <p>And another line of sample text here...</p>
+
`} />
## Tables
@@ -382,9 +413,26 @@ Reboot includes an enhancement for `role="button"` to change the default cursor
Non-button element button`} />
-## Misc elements
+## Variables
+
+For indicating variables use the `` tag.
+
+y = mx + b`} />
+
+## User input
+
+Use the `` to indicate input that is typically entered via keyboard.
-### Address
+cd followed by the name of the directory.
+ To edit settings, press Ctrl + ,`} />
+
+## Sample output
+
+For indicating sample output from a program use the `` tag.
+
+This text is meant to be treated as sample output from a computer program.`} />
+
+## Address
The `` element is updated to reset the browser default `font-style` from `italic` to `normal`. `line-height` is also now inherited, and margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} has been added. ``s are for presenting contact information for the nearest ancestor (or an entire body of work). Preserve formatting by ending lines with ` `.
@@ -400,26 +448,57 @@ The `` element is updated to reset the browser default `font-style` fro
first.last@example.com
`} />
-### Blockquote
+## Blockquote
+
+For quoting blocks of content from another source within your document, wrap `
` around any HTML as the quote. The default `margin` on blockquotes is `1em 40px`, so we reset that to 0 0 {getTokenValue('$ouds-space-fixed-medium')} for something more consistent with other elements. `
` uses [Regular text](#regular-texts) body large. {/* TODO change the link */}
+
+
+
A well-known quote, contained in a blockquote element.
+
`} />
+
+### Naming a source
-The default `margin` on blockquotes is `1em 40px`, so we reset that to 0 0 {getTokenValue('$ouds-space-fixed-medium')} for something more consistent with other elements.
+The HTML spec requires that blockquote attribution be placed outside the `
`. When providing attribution, wrap your `
` in a `` and use a `` or a block level element (e.g., `
`) with the `.blockquote-footer` class. Be sure to wrap the name of the source work in `` as well. It uses [Regular text](#regular-texts) body small.
-
-
+
+
A well-known quote, contained in a blockquote element.
-
+
+ Someone famous in Source Title
+
+
`} />
+
+### Alignment
+{/* TODO See if we keep it: its just some tips to use our utilities, I don't think this is very useful here */}
+
+Use text utilities as needed to change the alignment of your blockquote.
+
+
+
+
A well-known quote, contained in a blockquote element.
+
+
+ Someone famous in Source Title
+
+ `} />
+
+
+
+
A well-known quote, contained in a blockquote element.
+
+
Someone famous in Source Title
`} />
-### Inline elements
+## Abbreviations
-The `` element receives basic styling to make it stand out amongst paragraph text.
+Stylized implementation of HTML’s `` element for abbreviations and acronyms to show the expanded version on hover. Abbreviations have a default underline and gain a help cursor to provide additional context on hover and to users of assistive technologies.
HTML abbreviation element.`} />
-### Summary
+## Summary
The default `cursor` on summary is `text`, so we reset that to `pointer` to convey that the element can be interacted with by clicking on it.
diff --git a/site/src/content/docs/foundation/typography.mdx b/site/src/content/docs/foundation/typography.mdx
deleted file mode 100644
index b69541efcc..0000000000
--- a/site/src/content/docs/foundation/typography.mdx
+++ /dev/null
@@ -1,516 +0,0 @@
----
-title: Typography
-description: Documentation and examples for OUDS Web typography, including global settings, headings, body text, lists, and more.
-aliases:
- - "/docs/content/typography/"
- - "/docs/foundation/typography/"
-toc: true
----
-
-import { getTokenValue } from '@libs/sass-variables'
-
-export const headingLevel = [
- "heading-xlarge",
- "heading-large",
- "heading-medium",
- "heading-small",
- "body-large",
- "body-medium"
-]
-
-export const displayLevel = [
- "display-large",
- "display-medium",
- "display-small"
-]
-
-export const textLevel = [
- "body-large",
- "body-medium",
- "body-small"
-]
-
-export const labelLevel = [
- "label-xlarge",
- "label-large",
- "label-medium",
- "label-small"
-]
-
-export const screenSize = [
- "mobile",
- "tablet",
- "desktop"
-]
-
-## Global settings
-
-OUDS Web sets basic global display, typography, and link styles. When more control is needed, check out the [textual utility classes]([[docsref:/utilities/text]]).
-
-- Use a [font stack]([[docsref:/foundation/reboot#font-stack]]) of a custom font with native fonts fallback that selects the best `font-family` for each OS and device.
-- For a more inclusive and accessible type scale, we use the browser’s default root `font-size` (typically 16px) so visitors can customize their browser defaults as needed.
-- Use the `$font-family-base`, `$font-size-base`, and `$line-height-base` attributes as our typographic base applied to the `:root` children.
-- Use `max-width` on all font references for readability reasons. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
-- Use `--bs-color-bg-primary` to set a `background-color` on the `:root` children (`#fff` by default).
-
-These styles can be found within `_reboot.scss`, and the global variables are defined in `_variables.scss`. Make sure to set `$font-size-base` in `rem`.
-
-
- If you need need to include a font reference inside a custom component, please refer to our [font mixin section](#sass-mixins).
-
-
-## Headings
-
-All HTML headings, `
` through `
`, are available. Each class sets `font-size` but also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. Here are the associated `font-size`s depending on the breakpoints. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
-
-
-
-
-
-
Heading reference
-
Values from `2xs` to `sm`
-
Values from `md` to `lg`
-
Values for `xl` and upper
-
-
-
-{
- headingLevel.map((level) => (
-
-
- {level === 'heading-xlarge' && (<>Heading xlarge ({''})>)}
- {level === 'heading-large' && (<>Heading large ({''})>)}
- {level === 'heading-medium' && (<>Heading medium ({''})>)}
- {level === 'heading-small' && (<>Heading small ({''})>)}
- {level === 'body-large' && (<>Body large ({''})>)}
- {level === 'body-medium' && (<>Body medium ({''})>)}
-
`} />
-
-`.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element.
-
-h1. OUDS Web heading
-
h2. OUDS Web heading
-
h3. OUDS Web heading
-
h4. OUDS Web heading
-
h5. OUDS Web heading
-
h6. OUDS Web heading
`} />
-
-You can easily add an icon with your font reference using [our icon size utilities]([[docsref:/utilities/icons-sizing]]).
-
-
-
- ### Headings with marker
-
- A brand-colored marker can be displayed below the heading large (`
` or `.h2`), to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
- h2. OUDS Web heading with marker
-
h2. OUDS Web heading with marker
`} />
-
-
-## Display headings
-
-Traditional heading elements are designed to work best in the meat of your page content. When you need a heading to stand out, consider using a **display heading**—a larger, slightly more opinionated heading style.
-
-We provide `.display-*` from `large` through `small`. Each class sets `font-size` but also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints.
-
-
-
-
-
-
-
Display reference
-
Values from `2xs` to `sm`
-
Values from `md` to `lg`
-
Values for `xl` and upper
-
-
-
- {
- displayLevel.map((level) => (
-
-
- {level === 'display-large' && (<>Display large ({'.display-large'})>)}
- {level === 'display-medium' && (<>Display medium ({'.display-medium'})>)}
- {level === 'display-small' && (<>Display small ({'.display-small'})>)}
-
`} />
-
-Display headings are configured via the `$display-font-sizes` Sass map and the variable `$display-font-weight`.
-
-Display headings are customizable via three variables, `$display-font-family`, `$display-font-style` and `$display-line-height`.
-
-
-
-Traditional heading elements are designed to work best in the meat of your page content. When you need a heading to stand out, consider using a **display heading**—a larger, slightly more opinionated heading style.
-
-Display 1
-
Display 2
-
Display 3
-
Display 4
-
Display 5
-
Display 6
`} />
-
-Display headings are configured via the `$display-font-sizes` Sass map and two variables, `$display-font-weight` and `$display-line-height`.
-
-Display headings are customizable via two variables, `$display-font-family` and `$display-font-style`.
-
-
-
-
-
-## Regular texts
-
-Since only [headings](#headings), [display headings](#display-headings) and `strong` text are meant to use **Bold** in main content, other contents should use `normal` font-weight. Each class sets `font-size` but also `line-height`, `letter-spacing`, and `max-width`. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints. See our [Font utilities]([[docsref:/utilities/text#font-size]]).
-
-
- Body medium is set by default on `:root` children but we don’t set the `max-width` property for usability reasons.
-
-
-
-
-
-
-You can easily add an icon with your font reference using [our icon size utilities]([[docsref:/utilities/icons-sizing]]).
-
-### Lead
-
-Make a paragraph stand out by adding `.lead`. It uses [Regular text](#regular-texts) body large.
-
-
- This is a lead paragraph. It stands out from regular paragraphs.
- `} />
-
-### Small
-
-Render a paragraph with a small `font-size` by adding `.small` or use ``. It uses [Regular text](#regular-texts) body small.
-
-
- This is a small paragraph.
-
-
- This is a small paragraph.
-
`} />
-
-## Inline text elements
-
-Styling for common inline HTML5 elements.
-
-You can use the mark tag to highlight text.
-
This line of text is meant to be treated as deleted text.
-
This line of text is meant to be treated as no longer accurate.
-
This line of text is meant to be treated as an addition to the document.
-
This line of text will render as underlined.
-
This line of text is meant to be treated as fine print.
-
This line rendered as bold text.
-
This line rendered as bold text too, but would natively be italicized.
`} />
-
-Beware that those tags should be used for semantic purpose:
-
-- `` represents text which is marked or highlighted for reference or notation purposes.
-- `` represents side-comments and small print, like copyright and legal text. It uses [Regular text](#regular-texts) body small.
-- `` represents element that are no longer relevant or no longer accurate.
-- `` represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation.
-
-If you want to style your text, you should use the following classes instead:
-
-- `.mark` will apply the same styles as ``.
-- `.small` will apply the same styles as ``.
-- `.text-decoration-underline` will apply the same styles as ``.
-- `.text-decoration-line-through` will apply the same styles as ``.
-
-While not shown above, feel free to use `` and `` in HTML5. `` is meant to highlight words or phrases without conveying additional importance, while `` is mostly for voice, technical terms, etc.
-
-## Text utilities
-
-Change text alignment, transform, style, weight, line-height, decoration and color with our [text utilities]([[docsref:/utilities/text]]) and [color utilities]([[docsref:/utilities/color]]).
-
-## Abbreviations
-
-Stylized implementation of HTML’s `` element for abbreviations and acronyms to show the expanded version on hover. Abbreviations have a default underline and gain a help cursor to provide additional context on hover and to users of assistive technologies.
-
-attr`} />
-
-## Blockquotes
-
-For quoting blocks of content from another source within your document. Wrap `
` around any HTML as the quote. It uses [Regular text](#regular-texts) body large.
-
-
-
A well-known quote, contained in a blockquote element.
-
`} />
-
-### Naming a source
-
-The HTML spec requires that blockquote attribution be placed outside the `
`. When providing attribution, wrap your `
` in a `` and use a `` or a block level element (e.g., `
`) with the `.blockquote-footer` class. Be sure to wrap the name of the source work in `` as well. It uses [Regular text](#regular-texts) body small.
-
-
-
-
A well-known quote, contained in a blockquote element.
-
-
- Someone famous in Source Title
-
-
`} />
-
-### Alignment
-
-Use text utilities as needed to change the alignment of your blockquote.
-
-
-
-
A well-known quote, contained in a blockquote element.
-
-
- Someone famous in Source Title
-
- `} />
-
-
-
-
A well-known quote, contained in a blockquote element.
-
-
- Someone famous in Source Title
-
- `} />
-
-## Lists
-
-
- Please refer to the [Bullet list component]([[docsref:/components/bullet-list#utilities]]) for `.list-unstyled` and `.list-inline` documentation.
-
-
-### Description list alignment
-
-Align terms and descriptions horizontally by using our grid system’s predefined classes (or semantic mixins). For longer terms, you can optionally add a `.text-truncate` class to truncate the text with an ellipsis.
-
-
-
Description lists
-
A description list is perfect for defining terms.
-
-
Term
-
-
Definition for the term.
-
And some more placeholder definition text.
-
-
-
Another term
-
This definition is short, so no extra paragraphs or anything.
-
-
Truncated term is truncated
-
This can be useful when space is tight. Adds an ellipsis at the end.
-
-
Nesting
-
-
-
Nested definition list
-
I heard you like definition lists. Let me put a definition list inside your definition list.
-
-
- `} />
diff --git a/site/src/content/docs/getting-started/migration-from-boosted.mdx b/site/src/content/docs/getting-started/migration-from-boosted.mdx
index 9e284d0086..be82d0f1e3 100644
--- a/site/src/content/docs/getting-started/migration-from-boosted.mdx
+++ b/site/src/content/docs/getting-started/migration-from-boosted.mdx
@@ -36,6 +36,7 @@ Let’s start with the most obvious change you’ll notice: the name. **Boosted
- `boosted.esm.min.js` → `ouds-web.esm.min.js`
- `boosted.js` → `ouds-web.js`
- `boosted.min.js` → `ouds-web.min.js`
+- The SCSS file `_type.scss` has been renamed to `_typography.scss` for more consistency.
From now on, OUDS Web won’t embed Bootstrap elements that are not part of Orange Unified Design System. However, you can still use our Bootstrap compatibility mode by using `ouds-web-bootstrap.css` and `ouds-web-bootstrap.min.css`.
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 708af6a4f9..82b5268591 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -51,27 +51,31 @@ toc: true
- New Expand link has been implemented. Read more in our [links page]([[docsref:/components/links#expand-link]]).
-### Dual mode
+#### Typography
-1. Update `@ouds/web-common` and `@ouds/web-[theme]` to v1.5.0.
-2. Remove `@import "boosted/scss/dropdown";` from the Boosted custom import stack.
+- New Heading has been implemented. Read more in our [typography/heading paragraph]([[docsref:/components/typography#heading]]).
-#### Items
+- New Display has been implemented. Read more in our [typography/display paragraph]([[docsref:/components/typography#display]]).
-- Warning Items components have been updated to 1.2.0. Please check that your icons and images in the leading/trailing containers keep behaving as normal. Read more in the [list item design changelog](https://r.orange.fr/r/S-ouds-doc-list-item_changelog).
+- New Body has been implemented. Read more in our [typography/body paragraph]([[docsref:/components/typography#body]]).
-#### Links
+- New Label has been implemented. Read more in our [typography/label paragraph]([[docsref:/components/typography#label]]).
-- New Expand link has been implemented. Read more in our [links page]([[docsref:/components/links#expand-link]]).
+- New Code has been implemented. Read more in our [typography/code paragraph]([[docsref:/components/typography#code]]).
### Tools
- Info OUDS Web's AI agent skills now have a [dedicated repository](https://github.com/Orange-OpenSource/ouds-web-skills). To install or update them, run `npx skills add Orange-OpenSource/ouds-web-skills`.
+### Sass
+
+- Warning `_type.scss` has been renamed to `_typography.scss` for more consistency. You will need to change this name if you create your own custom import.
+
### Dual mode
-1. Update `@ouds/web-common` and `@ouds/web-[theme]` to v1.5.0.
+1. Update `@ouds/web-common` and `@ouds/web-[theme]` to v1.6.0.
2. Remove `@import "boosted/scss/dropdown";` from the Boosted custom import stack.
+3. Change `@import "@ouds/web-common/scss/type";` to `@import "@ouds/web-common/scss/typography";` in the OUDS Web custom import stack.
## v1.5.0 [[version-changelog-link]]
diff --git a/site/src/content/docs/getting-started/sass.mdx b/site/src/content/docs/getting-started/sass.mdx
index 3169f64ad7..22c0f98a35 100644
--- a/site/src/content/docs/getting-started/sass.mdx
+++ b/site/src/content/docs/getting-started/sass.mdx
@@ -88,7 +88,7 @@ In your `custom.scss`, you’ll import OUDS Web’s source Sass files. You have
// 7. Include any other optional stylesheet partials as desired; list below is not inclusive of all available stylesheets
@import "../node_modules/@ouds/web-common/scss/utilities";
@import "../node_modules/@ouds/web-common/scss/reboot";
-@import "../node_modules/@ouds/web-common/scss/type";
+@import "../node_modules/@ouds/web-common/scss/typography";
@import "../node_modules/@ouds/web-common/scss/images";
@import "../node_modules/@ouds/web-common/scss/containers";
@import "../node_modules/@ouds/web-common/scss/grid";
@@ -171,7 +171,7 @@ $body-color: #111;
// Optional OUDS Web components here
@import "../node_modules/@ouds/web-common/scss/reboot";
-@import "../node_modules/@ouds/web-common/scss/type";
+@import "../node_modules/@ouds/web-common/scss/typography";
// etc
```
@@ -237,7 +237,7 @@ $theme-colors: map-remove($theme-colors, "info", "light", "dark");
// Optional
@import "../node_modules/@ouds/web-common/scss/reboot";
-@import "../node_modules/@ouds/web-common/scss/type";
+@import "../node_modules/@ouds/web-common/scss/typography";
// etc
```
diff --git a/site/src/content/docs/utilities/icons-sizing.mdx b/site/src/content/docs/utilities/icons-sizing.mdx
index 5660872a32..2fe5849043 100644
--- a/site/src/content/docs/utilities/icons-sizing.mdx
+++ b/site/src/content/docs/utilities/icons-sizing.mdx
@@ -70,7 +70,7 @@ Every icon size utility class presented in here has the common following code:
## Headings
-Here are the rules to follow for headings. These icons’ sizes are responsive.
+Here are the rules to follow for [headings]([[docsref:/components/typography#heading]]). These icons’ sizes are responsive.
See the sizes associated to classes
@@ -254,13 +254,13 @@ Here are the rules to follow for headings. These icons’ sizes are responsive.
H6 with small icon
`} />
-## Display headings
+## Display texts
-You should not use any icon with our `.display-*` font sizes, because we prefer to keep the place for the text.
+You should not use any icon with our [display texts]([[docsref:/components/typography#display]]), because we prefer to keep the place for the text.
-## Regular texts
+## Body texts
-Here are the rules to follow for regular texts. These icons’ sizes are responsive.
+Here are the rules to follow for [body texts]([[docsref:/components/typography#body]]). These icons’ sizes are responsive.
See the sizes associated to classes
diff --git a/site/src/content/docs/utilities/text.mdx b/site/src/content/docs/utilities/text.mdx
index 457d8601f6..bdc39f81c1 100644
--- a/site/src/content/docs/utilities/text.mdx
+++ b/site/src/content/docs/utilities/text.mdx
@@ -111,6 +111,8 @@ Note how `.text-capitalize` only changes the first letter of each word, leaving
## Font size
+{ /* TODO ajouter marker sur fs-hl */ }
+
Quickly change the `font-size` of text. Sizing for these utilities matches our predefined typography placeholders. Don’t forget to add one of our [`font-weight`](#font-weight) utility when needed.
These classes change the `font-size` but also the `line-height`, the `letter-spacing` and the `max-width`. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
@@ -282,7 +284,7 @@ Quickly change the `font-weight` of text with these utilities. `font-weight` uti
- The medium font-weight can only be used with `label` and `body` [font references]([[docsref:/foundation/typography/#regular-texts]]).
+ The medium font-weight can only be used with [body text]([[docsref:/components/typography#body]]) and [label text]([[docsref:/components/typography#label]]).
Bold text.
From 2dab1f8f3fb39cc378c2fbee7c93016e93401488 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 17:33:45 +0200
Subject: [PATCH 25/52] Change remaining links and add todos when not clear yet
---
site/src/content/docs/foundation/reboot.mdx | 2 +-
site/src/content/docs/foundation/tokens.mdx | 2 +-
.../content/docs/getting-started/migration-from-boosted.mdx | 4 ++--
site/src/content/docs/getting-started/migration.mdx | 2 +-
site/src/content/docs/utilities.mdx | 2 +-
site/src/content/docs/utilities/sizing.mdx | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/site/src/content/docs/foundation/reboot.mdx b/site/src/content/docs/foundation/reboot.mdx
index 6bb2216a53..00b01dfff8 100644
--- a/site/src/content/docs/foundation/reboot.mdx
+++ b/site/src/content/docs/foundation/reboot.mdx
@@ -450,7 +450,7 @@ The `` element is updated to reset the browser default `font-style` fro
## Blockquote
-For quoting blocks of content from another source within your document, wrap `
` around any HTML as the quote. The default `margin` on blockquotes is `1em 40px`, so we reset that to 0 0 {getTokenValue('$ouds-space-fixed-medium')} for something more consistent with other elements. `
` uses [Regular text](#regular-texts) body large. {/* TODO change the link */}
+For quoting blocks of content from another source within your document, wrap `
` around any HTML as the quote. The default `margin` on blockquotes is `1em 40px`, so we reset that to 0 0 {getTokenValue('$ouds-space-fixed-medium')} for something more consistent with other elements. `
` uses [body large text]([[docsref:/components/typography#body]]).
A well-known quote, contained in a blockquote element.
diff --git a/site/src/content/docs/foundation/tokens.mdx b/site/src/content/docs/foundation/tokens.mdx
index 8a2dd01767..31a29c45ab 100644
--- a/site/src/content/docs/foundation/tokens.mdx
+++ b/site/src/content/docs/foundation/tokens.mdx
@@ -56,7 +56,7 @@ We build our Sass variables following the architecture of the design tokens:
- Ex: `ouds/color/content/on/brand-primary` becomes `$ouds-color-content-on-brand-primary`, `ouds/elevation/blur/emphasized` becomes `$ouds-elevation-blur-emphasized`.
- [Composite tokens](#composite-tokens): `$ouds-elevation-{token-name}`
- Ex: `ouds/elevation/**/emphasized` are aggregated via `$ouds-elevation-emphasized`.
- - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]) that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`.
+ - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]) that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. { /* TODO adapt the text and change the link */ }
- [Component tokens](#component-tokens): `$ouds-{component-name}-{token-name}`
- Ex: `ouds/button/color/bg/minimal/hover` becomes `$ouds-button-color-bg-minimal-hover`.
diff --git a/site/src/content/docs/getting-started/migration-from-boosted.mdx b/site/src/content/docs/getting-started/migration-from-boosted.mdx
index be82d0f1e3..670301b76a 100644
--- a/site/src/content/docs/getting-started/migration-from-boosted.mdx
+++ b/site/src/content/docs/getting-started/migration-from-boosted.mdx
@@ -67,7 +67,7 @@ Read more about the [font stack]([[docsref:/foundation/reboot#font-stack]]) for
### Typography
-- New Body fonts’ sizes are now responsive and can change depending on the screen size. See [Typography]([[docsref:/foundation/typography]]) for more details.
+- New Body fonts’ sizes are now responsive and can change depending on the screen size. See [Typography]([[docsref:/components/typography]]) for more details.
- New A `max-width` has been added on all font references for readability reasons. If you want to get rid of the `max-width`, please use our `.mw-none` width utility.
@@ -2708,7 +2708,7 @@ See [our new Text Area page]([[docsref:/components/text-area]]) for more informa
## Sass
-- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details.
+- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details. {/* TODO text to adapt and link to change */ }
- Warning `color-mode({mode}, {root}, {inverted-mode})` mixin signature has changed. We now provide an `$inverted-mode` parameter that is set by default to `light` or `dark` depending on the `$mode`. It allows you to precise another mode to be the inverse of a certain mode.
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 82b5268591..9185b2526f 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -2565,7 +2565,7 @@ toc: true
### Sass mixins
-- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details.
+- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details. {/* TODO text to adapt and link to change */ }
- New `color-mode({mode}, {root}, {inverted-mode})` mixin.
diff --git a/site/src/content/docs/utilities.mdx b/site/src/content/docs/utilities.mdx
index 636c91eea1..5875dee889 100644
--- a/site/src/content/docs/utilities.mdx
+++ b/site/src/content/docs/utilities.mdx
@@ -64,6 +64,6 @@ Variables names can be easily inferred from token names, [this is explained in t
| An opacity using a standard token `ouds/opacity/*`. Be careful where the token is applied. | `ouds/opacity/medium` | `none` | `$ouds-opacity-medium` |
| A shadow using a composite token like `ouds/elevation/*`. | `ouds/elevation/**/emphasized` | `none` | `$ouds-elevation-emphasized` |
| A spacing using a standard token `ouds/space/{scaled\|fixed}/*` or `ouds/space/{column-gap\|row-gap}/*`. | `ouds/space/scaled/2xlarge` `ouds/space/fixed/medium` `ouds/space/row-gap/none` | `--bs-space-scaled-2xlarge` `none` `none` | `none` `$ouds-space-fixed-medium` `$ouds-space-row-gap-none` |
- | A text using a named typography reference or tokens like `ouds/font/*` or `font-ref/size/weight`. | `ouds/font/**/body-large` `Body/Large/Strong` | `get-font-size("body-large")` `none` As you can see, this one is a bit special and calls a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]). | `none` `$ouds-font-weight-web-body-strong` |
+ | A text using a named typography reference or tokens like `ouds/font/*` or `font-ref/size/weight`. | `ouds/font/**/body-large` `Body/Large/Strong` | `get-font-size("body-large")` `none` As you can see, this one is a bit special and calls a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]). { /* TODO adapt the texts and change the link */ } | `none` `$ouds-font-weight-web-body-strong` |
| A spacing using a grid token `ouds/grid/*` | `ouds/grid/column-gap` `ouds/grid/margin` | `--bs-grid-gap` `--bs-grid-margin` | `none` `none` |
diff --git a/site/src/content/docs/utilities/sizing.mdx b/site/src/content/docs/utilities/sizing.mdx
index 8501c85456..32a07179f3 100644
--- a/site/src/content/docs/utilities/sizing.mdx
+++ b/site/src/content/docs/utilities/sizing.mdx
@@ -34,7 +34,7 @@ You can also use `max-width: 100%;` and `max-height: 100%;` utilities as needed.
Max-height 100%
`} />
-You can also use in some cases (mainly [font references]([[docsref:/foundation/typography]])) `max-width: none` utility as needed.
+You can also use in some cases (mainly [typography components]([[docsref:/components/typography]])) `max-width: none` utility as needed.
Max-width none
From a294fb827337e665543696237ffb378a3057610e Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 17:38:44 +0200
Subject: [PATCH 26/52] css snapshot tests
---
packages/orange-compact/scss/ouds-web.scss | 2 +-
packages/orange/scss/ouds-web.scss | 2 +-
packages/sosh/scss/ouds-web.scss | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/orange-compact/scss/ouds-web.scss b/packages/orange-compact/scss/ouds-web.scss
index 52b776ab4e..9828082612 100644
--- a/packages/orange-compact/scss/ouds-web.scss
+++ b/packages/orange-compact/scss/ouds-web.scss
@@ -15,7 +15,7 @@
// Layout & components
@import "@ouds/web-common/scss/root";
@import "@ouds/web-common/scss/reboot";
-@import "@ouds/web-common/scss/type";
+@import "@ouds/web-common/scss/typography";
@import "@ouds/web-common/scss/images";
@import "@ouds/web-common/scss/containers";
@import "@ouds/web-common/scss/grid";
diff --git a/packages/orange/scss/ouds-web.scss b/packages/orange/scss/ouds-web.scss
index a04255da7e..6ebd60f25b 100644
--- a/packages/orange/scss/ouds-web.scss
+++ b/packages/orange/scss/ouds-web.scss
@@ -15,7 +15,7 @@
// Layout & components
@import "@ouds/web-common/scss/root";
@import "@ouds/web-common/scss/reboot";
-@import "@ouds/web-common/scss/type";
+@import "@ouds/web-common/scss/typography";
@import "@ouds/web-common/scss/images";
@import "@ouds/web-common/scss/containers";
@import "@ouds/web-common/scss/grid";
diff --git a/packages/sosh/scss/ouds-web.scss b/packages/sosh/scss/ouds-web.scss
index 0a22761efd..f3fec81f59 100644
--- a/packages/sosh/scss/ouds-web.scss
+++ b/packages/sosh/scss/ouds-web.scss
@@ -15,7 +15,7 @@
// Layout & components
@import "@ouds/web-common/scss/root";
@import "@ouds/web-common/scss/reboot";
-@import "@ouds/web-common/scss/type";
+@import "@ouds/web-common/scss/typography";
@import "@ouds/web-common/scss/images";
@import "@ouds/web-common/scss/containers";
@import "@ouds/web-common/scss/grid";
From 8c6155cf104763454f8c7ad6362404c33a2ea215 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 17:44:57 +0200
Subject: [PATCH 27/52] .
---
site/data/sidebar-foundation.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/site/data/sidebar-foundation.yml b/site/data/sidebar-foundation.yml
index 29566259aa..94775aeae6 100644
--- a/site/data/sidebar-foundation.yml
+++ b/site/data/sidebar-foundation.yml
@@ -10,7 +10,6 @@
- title: Themes
- title: CSS variables
- title: Reboot
- - title: Typography
- title: Icons
- title: Images
coming_soon: true
From f88978445a9c96ed198207e77f6e7c74f1328a4f Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 17:54:07 +0200
Subject: [PATCH 28/52] .
---
site/src/content/docs/components/bullet-list.mdx | 2 +-
site/src/content/docs/getting-started/migration.mdx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/site/src/content/docs/components/bullet-list.mdx b/site/src/content/docs/components/bullet-list.mdx
index cc78812281..ebe903abdc 100644
--- a/site/src/content/docs/components/bullet-list.mdx
+++ b/site/src/content/docs/components/bullet-list.mdx
@@ -268,7 +268,7 @@ Bare lists have no markers, but retains indentation for alignment.
## Text style
-By default bullet lists text is displayed as [body large]([[docsref:/foundation/typography#regular-texts]]) and in bold, you can use the following classes to change these defaults.
+By default bullet lists text is displayed as [body large]([[docsref:/components/typography#body]]) and in bold, you can use the following classes to change these defaults.
### Body medium
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 9185b2526f..446ee84576 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -204,7 +204,7 @@ toc: true
#### Text
-- New Labels have been added to font size text utilities : `.fs-lxl`, `.fs-ll`, `.fs-lm`, `.fs-ls` are now available. Read more in our [typography page]([[docsref:foundation/typography#regular-texts]]).
+- New Labels have been added to font size text utilities : `.fs-lxl`, `.fs-ll`, `.fs-lm`, `.fs-ls` are now available. Read more in our [typography page]([[docsref:utilities/text#font-size]]).
### CSS and Sass variables
From 5da74957f025540fcc35bf3dc974fa1272fe78d8 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 19:53:55 +0200
Subject: [PATCH 29/52] .
---
site/src/content/docs/foundation/tokens.mdx | 4 ++--
site/src/content/docs/utilities.mdx | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/site/src/content/docs/foundation/tokens.mdx b/site/src/content/docs/foundation/tokens.mdx
index 31a29c45ab..34063c76cc 100644
--- a/site/src/content/docs/foundation/tokens.mdx
+++ b/site/src/content/docs/foundation/tokens.mdx
@@ -56,7 +56,7 @@ We build our Sass variables following the architecture of the design tokens:
- Ex: `ouds/color/content/on/brand-primary` becomes `$ouds-color-content-on-brand-primary`, `ouds/elevation/blur/emphasized` becomes `$ouds-elevation-blur-emphasized`.
- [Composite tokens](#composite-tokens): `$ouds-elevation-{token-name}`
- Ex: `ouds/elevation/**/emphasized` are aggregated via `$ouds-elevation-emphasized`.
- - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]) that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. { /* TODO adapt the text and change the link */ }
+ - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/utilities/text]]) { /* TODO adapt the texts and change the link */ } that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`.
- [Component tokens](#component-tokens): `$ouds-{component-name}-{token-name}`
- Ex: `ouds/button/color/bg/minimal/hover` becomes `$ouds-button-color-bg-minimal-hover`.
@@ -70,6 +70,6 @@ We build our CSS variables following the architecture of the design tokens:
- Our scaled spacing are only declared as CSS variables `--bs-space-scaled-{size}`. It’s equivalent to `ouds/space/scaled/{size}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- Our colors and elevation colors are declared as CSS variables `--bs-color-{token-name}`. It’s equivalent to `ouds/color/{token-name}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- Our icon sizes are declared as CSS variables `--bs-icon-{size}`. It’s equivalent to `ouds/size/icon/{size}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]) that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. Don’t use our CSS variables for font alone.
+ - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/utilities/text]]). { /* TODO adapt the texts and change the link */ } that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. Don’t use our CSS variables for font alone.
- [Composite tokens](#composite-tokens): We don’t have any composite token transformed into a CSS variable, but they are available as [Sass variables](#sass-variables).
- [Component tokens](#component-tokens): We don’t have any component token transformed into a CSS variable. The only CSS variables that we have for components are the ones that we need to build the component internally.
diff --git a/site/src/content/docs/utilities.mdx b/site/src/content/docs/utilities.mdx
index 5875dee889..2d65dbf50f 100644
--- a/site/src/content/docs/utilities.mdx
+++ b/site/src/content/docs/utilities.mdx
@@ -64,6 +64,6 @@ Variables names can be easily inferred from token names, [this is explained in t
| An opacity using a standard token `ouds/opacity/*`. Be careful where the token is applied. | `ouds/opacity/medium` | `none` | `$ouds-opacity-medium` |
| A shadow using a composite token like `ouds/elevation/*`. | `ouds/elevation/**/emphasized` | `none` | `$ouds-elevation-emphasized` |
| A spacing using a standard token `ouds/space/{scaled\|fixed}/*` or `ouds/space/{column-gap\|row-gap}/*`. | `ouds/space/scaled/2xlarge` `ouds/space/fixed/medium` `ouds/space/row-gap/none` | `--bs-space-scaled-2xlarge` `none` `none` | `none` `$ouds-space-fixed-medium` `$ouds-space-row-gap-none` |
- | A text using a named typography reference or tokens like `ouds/font/*` or `font-ref/size/weight`. | `ouds/font/**/body-large` `Body/Large/Strong` | `get-font-size("body-large")` `none` As you can see, this one is a bit special and calls a mixin [`get-font-size()`]([[docsref:/foundation/typography/#text-style-for-custom-components]]). { /* TODO adapt the texts and change the link */ } | `none` `$ouds-font-weight-web-body-strong` |
+ | A text using a named typography reference or tokens like `ouds/font/*` or `font-ref/size/weight`. | `ouds/font/**/body-large` `Body/Large/Strong` | `get-font-size("body-large")` `none` As you can see, this one is a bit special and calls a mixin [`get-font-size()`]([[docsref:/utilities/text]]). { /* TODO adapt the texts and change the link */ } | `none` `$ouds-font-weight-web-body-strong` |
| A spacing using a grid token `ouds/grid/*` | `ouds/grid/column-gap` `ouds/grid/margin` | `--bs-grid-gap` `--bs-grid-margin` | `none` `none` |
From e08f97f72de740a7a7571d7cb9f73ef3ef1c1856 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 7 Oct 2026 20:02:47 +0200
Subject: [PATCH 30/52] Broken links
---
packages/migrate/src/migrate.spec.mjs | 2 +-
packages/migrate/src/replacements/common.mjs | 2 +-
site/src/assets/examples/cheatsheet/index.astro | 2 +-
.../src/content/docs/getting-started/migration-from-boosted.mdx | 2 +-
site/src/content/docs/getting-started/migration.mdx | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/migrate/src/migrate.spec.mjs b/packages/migrate/src/migrate.spec.mjs
index 74ce0d513a..2fd44d3507 100644
--- a/packages/migrate/src/migrate.spec.mjs
+++ b/packages/migrate/src/migrate.spec.mjs
@@ -77,7 +77,7 @@ describe('Migrate', () => {
})
expect(getReplacementsWarnings()).toEqual([
- 'initialism class is deprecated in tests/source-boosted.html. See: https://web.unified-design-system.orange.com/docs/foundation/typography',
+ 'initialism class is deprecated in tests/source-boosted.html. See: https://web.unified-design-system.orange.com/docs/foundation/reboot',
'container class is deprecated in tests/source-boosted.html. See: https://web.unified-design-system.orange.com/docs/layout/containers',
'container-md class is deprecated in tests/source-boosted.html. See: https://web.unified-design-system.orange.com/docs/layout/containers',
'bg-supporting-purple class is deprecated in tests/source-boosted.html. See: https://web.unified-design-system.orange.com/docs/utilities/background',
diff --git a/packages/migrate/src/replacements/common.mjs b/packages/migrate/src/replacements/common.mjs
index fa20ee917d..a70928370b 100644
--- a/packages/migrate/src/replacements/common.mjs
+++ b/packages/migrate/src/replacements/common.mjs
@@ -20,7 +20,7 @@ export const commonReplacements = [
['display-4', 'h1'],
['display-5', 'h2'],
['display-6', 'h3'],
- [...warnForClass('initialism', { link: 'https://web.unified-design-system.orange.com/docs/foundation/typography' })],
+ [...warnForClass('initialism', { link: 'https://web.unified-design-system.orange.com/docs/foundation/reboot' })],
// Layout
[...warnForClass('container', { link: 'https://web.unified-design-system.orange.com/docs/layout/containers' })],
diff --git a/site/src/assets/examples/cheatsheet/index.astro b/site/src/assets/examples/cheatsheet/index.astro
index df9fafbca2..cc2d541b72 100644
--- a/site/src/assets/examples/cheatsheet/index.astro
+++ b/site/src/assets/examples/cheatsheet/index.astro
@@ -77,7 +77,7 @@ export const body_class = 'bg-body-tertiary'
diff --git a/site/src/content/docs/getting-started/migration-from-boosted.mdx b/site/src/content/docs/getting-started/migration-from-boosted.mdx
index 670301b76a..4ac451477f 100644
--- a/site/src/content/docs/getting-started/migration-from-boosted.mdx
+++ b/site/src/content/docs/getting-started/migration-from-boosted.mdx
@@ -2708,7 +2708,7 @@ See [our new Text Area page]([[docsref:/components/text-area]]) for more informa
## Sass
-- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details. {/* TODO text to adapt and link to change */ }
+- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/utilities/text]]) for more details. {/* TODO text to adapt and link to change */ }
- Warning `color-mode({mode}, {root}, {inverted-mode})` mixin signature has changed. We now provide an `$inverted-mode` parameter that is set by default to `light` or `dark` depending on the `$mode`. It allows you to precise another mode to be the inverse of a certain mode.
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 446ee84576..095f41a9c3 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -2565,7 +2565,7 @@ toc: true
### Sass mixins
-- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/foundation/typography#sass-mixins]]) for more details. {/* TODO text to adapt and link to change */ }
+- New The mixin `get-font-size({font-size-ref})` has been added, where `font-size-ref` is one of: `"code-medium"`, `"label-small"`, `"label-medium"`, `"label-large"`, `"label-xlarge"`, `"body-small"`, `"body-medium"`, `"body-large"`, `"heading-small"`, `"heading-medium"`, `"heading-large"`, `"heading-xlarge"`, `"display-small"`, `"display-medium"`, `"display-large"`. If you have/need any `font-size` in one of your SCSS classes, please consider using this mixin instead. See [Typography Sass mixins]([[docsref:/utilities/text]]) for more details. {/* TODO text to adapt and link to change */ }
- New `color-mode({mode}, {root}, {inverted-mode})` mixin.
From dd2c7d49b33c2895ba09d1237cad218192e00e2f Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 10:05:06 +0200
Subject: [PATCH 31/52] css tests
---
.../__snapshots__/ouds-web-bootstrap.css | 55 +++++++++----------
.../snapshot-tests/__snapshots__/ouds-web.css | 55 +++++++++----------
2 files changed, 52 insertions(+), 58 deletions(-)
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index 072b7c4c3e..7d71c59bcd 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -1237,6 +1237,30 @@ dd {
blockquote {
margin: 0 0 16px;
}
+blockquote > p {
+ max-width: var(--bs-font-max-width-body-large);
+ font-size: var(--bs-font-size-body-large);
+ line-height: var(--bs-font-line-height-body-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-large);
+}
+blockquote > :last-child {
+ margin-bottom: 0;
+}
+
+.blockquote-footer {
+ margin-top: -16px;
+ margin-bottom: 16px;
+ max-width: var(--bs-font-max-width-body-small);
+ font-size: var(--bs-font-size-body-small);
+ line-height: var(--bs-font-line-height-body-small);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-small);
+ color: var(--bs-color-content-muted);
+}
+.blockquote-footer::before {
+ content: "— ";
+}
i,
em,
@@ -1592,7 +1616,8 @@ dialog,
}
.h2.marker::after,
-h2.marker::after {
+h2.marker::after,
+.fs-hl.marker::after {
display: block;
width: 30px;
height: 12px;
@@ -1713,34 +1738,6 @@ h2.marker::after {
margin-right: 0.25rem;
}
-.blockquote {
- margin-bottom: 16px;
-}
-.blockquote > p {
- max-width: var(--bs-font-max-width-body-large);
- font-size: var(--bs-font-size-body-large);
- line-height: var(--bs-font-line-height-body-large);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-body-large);
-}
-.blockquote > :last-child {
- margin-bottom: 0;
-}
-
-.blockquote-footer {
- margin-top: -16px;
- margin-bottom: 16px;
- max-width: var(--bs-font-max-width-body-small);
- font-size: var(--bs-font-size-body-small);
- line-height: var(--bs-font-line-height-body-small);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-body-small);
- color: var(--bs-color-content-muted);
-}
-.blockquote-footer::before {
- content: "— ";
-}
-
.img-fluid {
max-width: 100%;
height: auto;
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index 6564e3981c..66738f124a 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -1072,6 +1072,30 @@ dd {
blockquote {
margin: 0 0 16px;
}
+blockquote > p {
+ max-width: var(--bs-font-max-width-body-large);
+ font-size: var(--bs-font-size-body-large);
+ line-height: var(--bs-font-line-height-body-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-large);
+}
+blockquote > :last-child {
+ margin-bottom: 0;
+}
+
+.blockquote-footer {
+ margin-top: -16px;
+ margin-bottom: 16px;
+ max-width: var(--bs-font-max-width-body-small);
+ font-size: var(--bs-font-size-body-small);
+ line-height: var(--bs-font-line-height-body-small);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-small);
+ color: var(--bs-color-content-muted);
+}
+.blockquote-footer::before {
+ content: "— ";
+}
i,
em,
@@ -1427,7 +1451,8 @@ dialog,
}
.h2.marker::after,
-h2.marker::after {
+h2.marker::after,
+.fs-hl.marker::after {
display: block;
width: 30px;
height: 12px;
@@ -1494,34 +1519,6 @@ h2.marker::after {
margin-right: 0.25rem;
}
-.blockquote {
- margin-bottom: 16px;
-}
-.blockquote > p {
- max-width: var(--bs-font-max-width-body-large);
- font-size: var(--bs-font-size-body-large);
- line-height: var(--bs-font-line-height-body-large);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-body-large);
-}
-.blockquote > :last-child {
- margin-bottom: 0;
-}
-
-.blockquote-footer {
- margin-top: -16px;
- margin-bottom: 16px;
- max-width: var(--bs-font-max-width-body-small);
- font-size: var(--bs-font-size-body-small);
- line-height: var(--bs-font-line-height-body-small);
- /* rtl:remove */
- letter-spacing: var(--bs-font-letter-spacing-body-small);
- color: var(--bs-color-content-muted);
-}
-.blockquote-footer::before {
- content: "— ";
-}
-
.img-fluid {
max-width: 100%;
height: auto;
From 094ed0df16f55a23b768d3a34b6f4f77f4e450a3 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 12:21:49 +0200
Subject: [PATCH 32/52] .
---
site/src/content/docs/components/typography.mdx | 10 ++++++++--
site/src/content/docs/foundation/tokens.mdx | 4 ++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index bd2958f4a3..618785cec4 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -536,5 +536,11 @@ Use the `` element to mark short code snippets within text. The `` e
Use `
` for displaying multiple lines of code. The `
` element preserves whitespace and formatting, particularly indentation, while the `` element marks the content as code.
-<p>Sample text here...</p>
-<p>And another line of sample text here...</p>
`} />
+
diff --git a/site/src/content/docs/foundation/tokens.mdx b/site/src/content/docs/foundation/tokens.mdx
index 34063c76cc..266e8d22c9 100644
--- a/site/src/content/docs/foundation/tokens.mdx
+++ b/site/src/content/docs/foundation/tokens.mdx
@@ -56,7 +56,7 @@ We build our Sass variables following the architecture of the design tokens:
- Ex: `ouds/color/content/on/brand-primary` becomes `$ouds-color-content-on-brand-primary`, `ouds/elevation/blur/emphasized` becomes `$ouds-elevation-blur-emphasized`.
- [Composite tokens](#composite-tokens): `$ouds-elevation-{token-name}`
- Ex: `ouds/elevation/**/emphasized` are aggregated via `$ouds-elevation-emphasized`.
- - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/utilities/text]]) { /* TODO adapt the texts and change the link */ } that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`.
+ - Our font tokens are aggregated in a mixin `get-font-size()` that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`.
- [Component tokens](#component-tokens): `$ouds-{component-name}-{token-name}`
- Ex: `ouds/button/color/bg/minimal/hover` becomes `$ouds-button-color-bg-minimal-hover`.
@@ -70,6 +70,6 @@ We build our CSS variables following the architecture of the design tokens:
- Our scaled spacing are only declared as CSS variables `--bs-space-scaled-{size}`. It’s equivalent to `ouds/space/scaled/{size}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- Our colors and elevation colors are declared as CSS variables `--bs-color-{token-name}`. It’s equivalent to `ouds/color/{token-name}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- Our icon sizes are declared as CSS variables `--bs-icon-{size}`. It’s equivalent to `ouds/size/icon/{size}` in Figma. Prefer using our [utilities]([[docsref:/utilities#using-our-utilities]]) when possible.
- - Our font tokens are aggregated in a mixin [`get-font-size()`]([[docsref:/utilities/text]]). { /* TODO adapt the texts and change the link */ } that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. Don’t use our CSS variables for font alone.
+ - Our font tokens are aggregated in a mixin `get-font-size()` that takes the font reference name as a parameter. So `ouds/font/**/body-large` are aggregated via `get-font-size("body-large")`. Don’t use our CSS variables for font alone.
- [Composite tokens](#composite-tokens): We don’t have any composite token transformed into a CSS variable, but they are available as [Sass variables](#sass-variables).
- [Component tokens](#component-tokens): We don’t have any component token transformed into a CSS variable. The only CSS variables that we have for components are the ones that we need to build the component internally.
From bb16f4dc2fa60fb6227434a2f3aeb1b7a16cac3a Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 12:33:42 +0200
Subject: [PATCH 33/52] link .blockquote-footer with
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
+
- Warning Default spacing values now use `px`s instead of `em`s for fixed component spacing, to keep as much space as possible for meaningful content on zoom.
## Layout
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 095f41a9c3..3d5d806e0e 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -53,7 +53,7 @@ toc: true
#### Typography
-- New Heading has been implemented. Read more in our [typography/heading paragraph]([[docsref:/components/typography#heading]]).
+- New Heading has been implemented, and `.marker` class has been added for 'orange' and 'orange-compact' themes. Read more in our [typography/heading paragraph]([[docsref:/components/typography#heading]]).
- New Display has been implemented. Read more in our [typography/display paragraph]([[docsref:/components/typography#display]]).
@@ -71,6 +71,10 @@ toc: true
- Warning `_type.scss` has been renamed to `_typography.scss` for more consistency. You will need to change this name if you create your own custom import.
+### Reboot
+
+- Breaking `.blockquote` class has been removed, you can still use `
`
}
]
From 3960fe43b8abef055d8954f6e4d79711425fc372 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 14:38:47 +0200
Subject: [PATCH 37/52] Revise typography aliases
Updated typography documentation with new alias and description.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
site/src/content/docs/components/typography.mdx | 1 +
1 file changed, 1 insertion(+)
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index 618785cec4..69785b0034 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -3,6 +3,7 @@ title: Typography
description: Typography is a set of UI elements that structure and style text content, including headings, display text, body text, labels, and code, used to establish visual hierarchy and ensure consistent, accessible reading across OUDS Web.
aliases:
- "/docs/foundation/typography/"
+ - "/docs/content/typography/"
toc: true
types:
- Heading
From e90742674c2b2cbacffb6430a8d4315f8b5ef6a8 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 14:39:59 +0200
Subject: [PATCH 38/52] Update call to ThemeSpecific (attribute name mistake)
Clarify semantic meaning of HTML tags and add information about heading markers.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---
site/src/content/docs/components/typography.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index 69785b0034..ca89fef8d4 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -234,7 +234,7 @@ Please note that:
- You have to use the appropriate HTML tag to convey the right semantic meaning. A heading tag meaning is not reflected by the corresponding class on a `
` tag.
- You can easily add an icon with your headings using our [heading icon size utilities]([[docsref:/utilities/icons-sizing#headings]]).
-
+
### Heading with marker
A brand-colored marker can be displayed below the heading large (`
` or `.h2`), to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
From 6a744b9737cb71eeed7d9d0771943adbab9a3f2d Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 17:20:08 +0200
Subject: [PATCH 39/52] content/default color on code elements + content/muted
for our doc for inline code elements
---
scss/_reboot.scss | 2 --
scss/_variables.scss | 2 --
site/src/scss/_component-examples.scss | 5 +++++
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/scss/_reboot.scss b/scss/_reboot.scss
index 230a5f361e..7e93197617 100644
--- a/scss/_reboot.scss
+++ b/scss/_reboot.scss
@@ -416,7 +416,6 @@ pre {
margin-bottom: $ouds-space-fixed-medium; // 2 // OUDS mod: instead of `1rem`
overflow: auto; // 3
@include get-font-size("code-medium"); // OUDS mod: instead of `font-size: $code-font-size`
- color: $pre-color;
// Account for some code outputs that place code tags in pre tags
code {
@@ -430,7 +429,6 @@ var, // OUDS mod
code {
font-size: $code-font-size;
font-style: normal; // OUDS mod: is italic in all browsers
- color: var(--#{$prefix}color-content-muted);
word-wrap: break-word;
}
diff --git a/scss/_variables.scss b/scss/_variables.scss
index 5b62c32b48..80706fff2e 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -1929,8 +1929,6 @@ $kbd-font-size: $code-font-size !default;
$kbd-color: var(--#{$prefix}color-content-inverse) !default; // OUDS mod: instead of `var(--#{$prefix}body-bg)`
$kbd-bg: var(--#{$prefix}color-surface-inverse-high) !default; // OUDS mod: instead of `var(--#{$prefix}body-color)`
$nested-kbd-font-weight: null !default; // Deprecated in Bootstrap v5.2.0, removing in v6
-
-$pre-color: var(--#{$prefix}color-content-muted) !default; // instead of `null`
// End mod
//
diff --git a/site/src/scss/_component-examples.scss b/site/src/scss/_component-examples.scss
index dca844d1f3..2f774d6ed6 100644
--- a/site/src/scss/_component-examples.scss
+++ b/site/src/scss/_component-examples.scss
@@ -423,6 +423,11 @@
// OUDS mod: no .bd-content .bd-code-snippet
+// For code elements outside of code snippets, use muted color by default
+code {
+ color: var(--#{$prefix}color-content-muted);
+}
+
// OUDS mod
// scss-docs-start sticker-fs-4xlarge
.sticker-fs-4xlarge {
From 959a46dbe418e36a96cab2762bdc01339a142f73 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Thu, 8 Oct 2026 17:21:07 +0200
Subject: [PATCH 40/52] Update skills
---
.../SKILL.md | 2 +-
.../{foundation => components}/typography.md | 103 +++++++++++-------
.../references/foundation/reboot.md | 34 ++++++
.../references/foundation/tokens.md | 22 ++++
.../references/getting-started/migration.md | 6 +
.../references/getting-started/sass.md | 2 +-
.../references/utilities/figma-tokens.md | 2 +-
7 files changed, 126 insertions(+), 45 deletions(-)
rename skills/using-ouds-web-version-major-minor/references/{foundation => components}/typography.md (56%)
diff --git a/skills/using-ouds-web-version-major-minor/SKILL.md b/skills/using-ouds-web-version-major-minor/SKILL.md
index c158732ae1..2cd374a203 100644
--- a/skills/using-ouds-web-version-major-minor/SKILL.md
+++ b/skills/using-ouds-web-version-major-minor/SKILL.md
@@ -110,7 +110,6 @@ Always pin `` to a specific release (e.g. `1.4.0`) rather than leaving
### Foundation
- [Approach](references/foundation/approach.md) - Design principles
-- [Typography](references/foundation/typography.md) - Headings, body text, display, font mixins
- [Colors](references/foundation/colors.md) - Available raw colors
- [Color modes](references/foundation/color-modes.md) - Light/dark/root/root-inverted themes
- [Tokens](references/foundation/tokens.md) - Raw/semantic/composite/component token architecture
@@ -157,6 +156,7 @@ Always pin `` to a specific release (e.g. `1.4.0`) rather than leaving
- [Table](references/components/table.md) - Opt-in table styling (draft component)
- [Text area](references/components/text-area.md) - Multiline inputs
- [Text input](references/components/text-input.md) - Single-line inputs
+- [Typography](references/components/typography.md) - Headings (+ heading marker), display, body, label, code
### Not yet documented (do not invent markup)
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/typography.md b/skills/using-ouds-web-version-major-minor/references/components/typography.md
similarity index 56%
rename from skills/using-ouds-web-version-major-minor/references/foundation/typography.md
rename to skills/using-ouds-web-version-major-minor/references/components/typography.md
index 54f73683b3..cf81e415b5 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/typography.md
+++ b/skills/using-ouds-web-version-major-minor/references/components/typography.md
@@ -1,6 +1,10 @@
# Typography
-Global typography settings, headings, body text, display headings, and text utilities.
+Typography is a set of UI elements that structure and style text content: headings, display text, body text,
+labels, and code. Five types: **Heading**, **Display**, **Body**, **Label**, **Code**.
+
+Use the HTML tag matching the **semantic meaning** of the content (heading, paragraph, code snippet, etc.) —
+never pick a tag just because of how it looks on screen; appearance is handled by the class/token, not the tag.
## Global Settings
@@ -9,9 +13,9 @@ Global typography settings, headings, body text, display headings, and text util
- `max-width` applied on all font references for readability — remove with `.mw-none` utility
- `--bs-color-bg-primary` sets `background-color` on `:root` children
- Sass variables: `$font-family-base`, `$font-size-base`, `$line-height-base`
-- Styles in `_reboot.scss`, variables in `_variables.scss`
+- Styles in `_reboot.scss` and `_typography.scss`, variables in `_variables.scss`
-## Headings
+## Heading
HTML `
` through `
` — each sets `font-size`, `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. Responsive across 3 ranges.
@@ -39,7 +43,21 @@ Classes `.h1` through `.h6` available for matching heading styling without the H
h1. OUDS Web heading
```
-## Display Headings
+### Heading with marker
+
+A brand-colored marker can be displayed below a heading large (`
` or `.h2`) to reinforce visual emphasis
+and information hierarchy. Add the `.marker` class:
+
+```html
+
h2. OUDS Web heading with marker
+
h2. OUDS Web heading with marker
+```
+
+> **Brand-dependent:** the marker only renders if the active theme defines the
+> `$ouds-typography-heading-large-marker` flag and a `$ouds-heading-large-marker-img` asset. It is available on
+> Orange and Orange Compact; Sosh does not define a marker image, so `.marker` has no visible effect there.
+
+## Display
Larger, more opinionated heading styles. **OUDS Web uses named sizes, not numbers.**
@@ -61,9 +79,11 @@ With `$enable-bootstrap-compatibility: true`, `.display-1` through `.display-6`
Sass: `$display-font-sizes`, `$display-font-weight`, `$display-font-family`, `$display-font-style`, `$display-line-height`.
-## Regular Texts
+## Body
-Only headings, display headings, and `` text use **bold**. Other content uses `normal` font-weight.
+Regular body text, used for paragraphs, descriptions, and informational messages. Only headings, display
+headings, and `` text use **bold** by default; body text uses `normal` font-weight (overridable via
+[font weight utilities](../utilities/text.md)).
| Reference | Class/Element |
| ----------- | --------------------- |
@@ -86,6 +106,9 @@ Only headings, display headings, and `` text use **bold**. Other content
This is a small paragraph.
```
+`.lead`, default `
`, and `.small`/`` are equivalent to the font-size text utilities `.fs-bl`, `.fs-bm`,
+`.fs-bs` — all of them also set `line-height`, `letter-spacing`, and `max-width`.
+
## Inline Text Elements
```html
@@ -109,32 +132,12 @@ Only headings, display headings, and `` text use **bold**. Other content
Equivalent classes: `.mark`, `.small`, `.text-decoration-underline`, `.text-decoration-line-through`.
-## Blockquotes
-
-Uses body large text. Wrap with `
`.
+> For blockquotes, see [Reboot](../foundation/reboot.md#blockquotes).
-```html
-
-
A well-known quote, contained in a blockquote element.
-
-```
+## Label
-### With Attribution
-
-```html
-
-
-
A well-known quote, contained in a blockquote element.
-
-
- Someone famous in Source Title
-
-
-```
-
-## Label utility classes (v1.4.0+)
-
-In addition to heading/body font-size utilities, dedicated **label** font-size classes are available (non-responsive, single value regardless of breakpoint), for UI labels such as form labels, buttons, tags, badges:
+Label is non-responsive text for compact UI components such as buttons, form fields, badges, and tags — single
+value regardless of breakpoint (non-responsive), unlike Heading/Display/Body (responsive). Four size levels:
| Class | Level |
| ---------- | -------------- |
@@ -147,22 +150,38 @@ In addition to heading/body font-size utilities, dedicated **label** font-size c
Label medium text
```
-## Sass Mixin: `get-font-size()`
+Label texts use `normal` font-weight by default too.
-For custom components, use the `get-font-size()` mixin. Label levels: `small`, `medium`, `large`, `xlarge`.
+## Code
-```scss
-.my-custom-component {
- @include get-font-size("label-medium");
-}
+Styles technical content like code snippets, commands, system values, and identifiers, using a monospace
+typeface. Single size — reserve it for content that genuinely needs a code-like representation.
+
+> **Color:** `` and `
` no longer force a muted text color by default (the library leaves `color` to
+> inherit the surrounding text color). If a muted appearance is desired, apply it explicitly, e.g.
+> `color: var(--bs-color-content-muted)`.
+
+### Inline code
+
+```html
+For example, <section> should be wrapped as inline.
```
-Outputs:
+### Code blocks
+
+Use `
` for multiple lines; `
` preserves whitespace/indentation, `` marks the content as code.
-```css
-.my-custom-component {
- font-size: var(--bs-font-size-label-medium);
- line-height: var(--bs-font-line-height-label-medium);
- letter-spacing: var(--bs-font-letter-spacing-label-medium); /* ltr only */
+```html
+
```
+
+## Sizing text in custom components
+
+To size text in a custom component, use the `get-font-size()` composite-token mixin — see
+[Tokens](../foundation/tokens.md#composite-tokens).
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
index bf039b610c..12a72d1ec5 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
@@ -64,6 +64,40 @@ Use appropriate `data-bs-theme` and `.bg-surface-*` classes:
Styled via `border-top`, inherits `border-color` via `color`. Customize with border utilities. See Divider component.
+## Blockquotes
+
+Style applies directly to the bare `
` element — **there is no `.blockquote` class** (removed; do not
+add it). Uses [body large text](../components/typography.md#body).
+
+```html
+
+
A well-known quote, contained in a blockquote element.
+
+```
+
+### Naming a source
+
+The HTML spec requires attribution to be placed outside the `
`. Wrap the `
` in a
+`` and add a `` (or a block-level element like `
`) with the `.blockquote-footer` class
+**immediately after** the `
` — it only renders its styling (dash prefix, body small text) when it is
+the adjacent sibling of a `
` (CSS selector `blockquote + .blockquote-footer`). Wrap the source name in
+``.
+
+```html
+
+
+
A well-known quote, contained in a blockquote element.
+
+
+ Someone famous in Source Title
+
+
+```
+
+> **Breaking change (v1.6.0):** previously `.blockquote` and `.blockquote-footer` worked as standalone classes.
+> Now the plain `
` element carries the style, and `.blockquote-footer` requires the adjacent-sibling
+> structure above to be styled.
+
## Lists
Refer to Bullet list component for `
`/`` styling, `.list-unstyled`, `.list-inline`.
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md b/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
index f7c100cfa3..583331f941 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
@@ -28,6 +28,28 @@ OUDS Web design tokens (from Figma) are structured in a **three-tier architectur
- Aggregations of several semantic tokens (or brand-specific icons), e.g. shadow/elevation tokens and typographic definitions
- Already exposed via utilities/components — **usable directly**
+### Font tokens: `get-font-size()` mixin
+
+Font tokens can't be used as plain Sass/CSS variables — they're aggregated into the `get-font-size()` mixin,
+which takes the font reference name as a parameter. Use it to size text in custom components. Levels: heading
+(`heading-xlarge/large/medium/small`), body (`body-large/medium/small`), label (`label-xlarge/large/medium/small`).
+
+```scss
+.my-custom-component {
+ @include get-font-size("label-medium");
+}
+```
+
+Outputs:
+
+```css
+.my-custom-component {
+ font-size: var(--bs-font-size-label-medium);
+ line-height: var(--bs-font-line-height-label-medium);
+ letter-spacing: var(--bs-font-letter-spacing-label-medium); /* ltr only */
+}
+```
+
## Component tokens
- File: `@ouds/web-{brand}/scss/tokens/_component.scss`
diff --git a/skills/using-ouds-web-version-major-minor/references/getting-started/migration.md b/skills/using-ouds-web-version-major-minor/references/getting-started/migration.md
index 709a2a099c..12656f10c4 100644
--- a/skills/using-ouds-web-version-major-minor/references/getting-started/migration.md
+++ b/skills/using-ouds-web-version-major-minor/references/getting-started/migration.md
@@ -7,11 +7,17 @@
### Breaking changes
- **Alerts**: action links placed inside `.alert-container`, after `.alert-text-container`, must use the compact link variant: `.link.link-compact`. Action links placed inside `.alert-action-container`, beside the close button, continue to use the regular `.link`.
+- **Blockquotes**: `.blockquote` class removed — style now applies directly to the bare `
` element. `.blockquote-footer` only renders its styling when it is the adjacent sibling of a `
` (`blockquote + .blockquote-footer`), so keep the `` wrapper with `` immediately after the `
`.
### New
- **Buttons**: Expand button implemented
- **Links**: Expand link implemented
+- **Typography**: optional heading marker — add `.marker` to a heading large (`
`/`.h2`) to display a brand-colored marker below it (Orange, Orange Compact; no visible effect on Sosh).
+
+### Components
+
+- `` and `
` no longer force a muted text color by default; they now inherit the surrounding text color.
## v1.5.0
diff --git a/skills/using-ouds-web-version-major-minor/references/getting-started/sass.md b/skills/using-ouds-web-version-major-minor/references/getting-started/sass.md
index 288b4f46a5..9b7860ccc2 100644
--- a/skills/using-ouds-web-version-major-minor/references/getting-started/sass.md
+++ b/skills/using-ouds-web-version-major-minor/references/getting-started/sass.md
@@ -49,7 +49,7 @@ your-project/
// 7. Optional partials
@import "../node_modules/@ouds/web-common/scss/utilities";
@import "../node_modules/@ouds/web-common/scss/reboot";
-@import "../node_modules/@ouds/web-common/scss/type";
+@import "../node_modules/@ouds/web-common/scss/typography";
@import "../node_modules/@ouds/web-common/scss/images";
@import "../node_modules/@ouds/web-common/scss/containers";
@import "../node_modules/@ouds/web-common/scss/grid";
diff --git a/skills/using-ouds-web-version-major-minor/references/utilities/figma-tokens.md b/skills/using-ouds-web-version-major-minor/references/utilities/figma-tokens.md
index 2ec5e9a98c..93d40ec9ab 100644
--- a/skills/using-ouds-web-version-major-minor/references/utilities/figma-tokens.md
+++ b/skills/using-ouds-web-version-major-minor/references/utilities/figma-tokens.md
@@ -34,5 +34,5 @@ Use when there is no utility class, when applying a token on a pseudo-element, o
| Opacity `ouds/opacity/*` | `ouds/opacity/medium` | none | `$ouds-opacity-medium` |
| Shadow `ouds/elevation/*` | `ouds/elevation/**/emphasized` | none | `$ouds-elevation-emphasized` |
| Spacing `ouds/space/*` | `ouds/space/scaled/2xlarge` `ouds/space/fixed/medium` | `--bs-space-scaled-2xlarge` none | none `$ouds-space-fixed-medium` |
-| Typography `ouds/font/*` or `font-ref/size/weight` | `ouds/font/**/body-large` | Use the `get-font-size()` Sass mixin (see [typography](../foundation/typography.md)) | `$ouds-font-weight-web-body-strong` (weight only) |
+| Typography `ouds/font/*` or `font-ref/size/weight` | `ouds/font/**/body-large` | Use the `get-font-size()` Sass mixin (see [Tokens](../foundation/tokens.md#composite-tokens)) | `$ouds-font-weight-web-body-strong` (weight only) |
| Grid `ouds/grid/*` | `ouds/grid/column-gap` `ouds/grid/margin` | `--bs-grid-gap` `--bs-grid-margin` | none |
From ecd7229e15a6c233a8caa7b30745a2452b80bdfe Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 9 Oct 2026 09:37:54 +0200
Subject: [PATCH 41/52] Update css snapshot
---
scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css | 2 --
scss/tests/snapshot-tests/__snapshots__/ouds-web.css | 2 --
2 files changed, 4 deletions(-)
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index ecccf0565f..6473e1812a 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -1365,7 +1365,6 @@ pre {
line-height: var(--bs-font-line-height-code-medium);
/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-code-medium);
- color: var(--bs-color-content-muted);
}
pre code {
font-size: inherit;
@@ -1377,7 +1376,6 @@ var,
code {
font-size: 0.875em;
font-style: normal;
- color: var(--bs-color-content-muted);
word-wrap: break-word;
}
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index 1496d7512b..51241e98bd 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -1200,7 +1200,6 @@ pre {
line-height: var(--bs-font-line-height-code-medium);
/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-code-medium);
- color: var(--bs-color-content-muted);
}
pre code {
font-size: inherit;
@@ -1212,7 +1211,6 @@ var,
code {
font-size: 0.875em;
font-style: normal;
- color: var(--bs-color-content-muted);
word-wrap: break-word;
}
From ad3bd7026e2eaafce526db0e6cca7459edef4b93 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 9 Oct 2026 17:44:30 +0200
Subject: [PATCH 42/52] Add carriage return between heart definition and
extension
---
.../content/docs/components/typography.mdx | 20 ++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index ca89fef8d4..29b9b63f0a 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -117,7 +117,9 @@ To ensure accessibility, make sure you choose the HTML tags you use, based on th
## [[comp]] Heading
-Heading is a UI element that styles typography to structure content and define the hierarchy of information within an interface. The heading features multiple sizes options, to help users quickly understand the organization of a page or section. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Heading serve as the primary entry point for visual navigation.
+Heading is a UI element that styles typography to structure content and define the hierarchy of information within an interface.
+
+The heading features multiple sizes options, to help users quickly understand the organization of a page or section. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Heading serve as the primary entry point for visual navigation.
All HTML headings, `
` through `
`, are available. Each class sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. If you want to get rid of the `max-width`, use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints.
@@ -246,7 +248,9 @@ A brand-colored marker can be displayed below the heading large (`
` or `.h2`
## [[comp]] Display
-Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages. The display features large type sizes that capture attention and create strong visual emphasis. Variants automatically adjust across breakpoints to maintain a consistent visual hierarchy on all screen sizes. Use it sparingly to preserve its impact and effectiveness.
+Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages.
+
+The display features large type sizes that capture attention and create strong visual emphasis. Variants automatically adjust across breakpoints to maintain a consistent visual hierarchy on all screen sizes. Use it sparingly to preserve its impact and effectiveness.
We provide `.display-*` from `large` through `small`. Each class sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints.
@@ -338,7 +342,9 @@ Please note that:
## [[comp]] Body
-Body is a UI element that styles typography for common text content like paragraphs, descriptions, and informational messages. The body features multiple size options, to allow content importance to be expressed while maintaining consistency. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Body prioritize readability and provide a comfortable reading experience.
+Body is a UI element that styles typography for common text content like paragraphs, descriptions, and informational messages.
+
+The body features multiple size options, to allow content importance to be expressed while maintaining consistency. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Body prioritize readability and provide a comfortable reading experience.
Regular body text forms the core of your content. Body text has three size levels: large (for emphasis), medium (default), and small (for supporting information). Each class sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. To remove the `max-width`, use the `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Body texts use `font-weight: normal` by default, but can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
@@ -437,7 +443,9 @@ Please note that:
## [[comp]] Label
-Label is a UI element that styles typography for compact interface components such as buttons, form fields, badges, and other small elements. The label is non-responsive and maintains a fixed size across all breakpoints. This ensures visual consistency and predictable behavior within space-constrained UI elements. Labels are preferred when content is displayed within small components.
+Label is a UI element that styles typography for compact interface components such as buttons, form fields, badges, and other small elements.
+
+The label is non-responsive and maintains a fixed size across all breakpoints. This ensures visual consistency and predictable behavior within space-constrained UI elements. Labels are preferred when content is displayed within small components.
Labels have four size levels: xlarge, large, medium, and small. Each class sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. To remove the `max-width`, use the `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Label texts use `font-weight: normal` by default, but can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
@@ -525,7 +533,9 @@ Please note that you have to use the appropriate HTML tag to convey the right se
## [[comp]] Code
-Code element is a UI element that styles typography for technical content like code snippets, commands, system values, and identifiers. The code employs a monospace typeface to maintain character alignment and enhance the readability of structured content. Offered in one size, it ensures a uniform presentation of technical information across the product. Its application should be restricted to content that necessitates a precise code-like representation.
+Code element is a UI element that styles typography for technical content like code snippets, commands, system values, and identifiers.
+
+The code employs a monospace typeface to maintain character alignment and enhance the readability of structured content. Offered in one size, it ensures a uniform presentation of technical information across the product. Its application should be restricted to content that necessitates a precise code-like representation.
### Inline code
From 80107da1b629dbcab0898a5ce5df809afd3aea53 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 9 Oct 2026 18:01:06 +0200
Subject: [PATCH 43/52] remove useless carriage returns
---
.../references/components/typography.md | 41 ++++++++-----------
.../references/foundation/reboot.md | 13 ++----
.../references/foundation/tokens.md | 4 +-
3 files changed, 22 insertions(+), 36 deletions(-)
diff --git a/skills/using-ouds-web-version-major-minor/references/components/typography.md b/skills/using-ouds-web-version-major-minor/references/components/typography.md
index cf81e415b5..4424581317 100644
--- a/skills/using-ouds-web-version-major-minor/references/components/typography.md
+++ b/skills/using-ouds-web-version-major-minor/references/components/typography.md
@@ -1,10 +1,8 @@
# Typography
-Typography is a set of UI elements that structure and style text content: headings, display text, body text,
-labels, and code. Five types: **Heading**, **Display**, **Body**, **Label**, **Code**.
+Typography is a set of UI elements that structure and style text content: headings, display text, body text, labels, and code. Five types: **Heading**, **Display**, **Body**, **Label**, **Code**.
-Use the HTML tag matching the **semantic meaning** of the content (heading, paragraph, code snippet, etc.) —
-never pick a tag just because of how it looks on screen; appearance is handled by the class/token, not the tag.
+Use the HTML tag matching the **semantic meaning** of the content (heading, paragraph, code snippet, etc.) — never pick a tag just because of how it looks on screen; appearance is handled by the class/token, not the tag.
## Global Settings
@@ -43,19 +41,24 @@ Classes `.h1` through `.h6` available for matching heading styling without the H
h1. OUDS Web heading
```
+```html
+
+
Section title styled larger
+
+
+
Section title styled larger
+```
+
### Heading with marker
-A brand-colored marker can be displayed below a heading large (`
` or `.h2`) to reinforce visual emphasis
-and information hierarchy. Add the `.marker` class:
+A brand-colored marker can be displayed below a heading large (`
` or `.h2`) to reinforce visual emphasis and information hierarchy. Add the `.marker` class:
```html
h2. OUDS Web heading with marker
h2. OUDS Web heading with marker
```
-> **Brand-dependent:** the marker only renders if the active theme defines the
-> `$ouds-typography-heading-large-marker` flag and a `$ouds-heading-large-marker-img` asset. It is available on
-> Orange and Orange Compact; Sosh does not define a marker image, so `.marker` has no visible effect there.
+> **Brand-dependent:** the marker only renders if the active theme defines the `$ouds-typography-heading-large-marker` flag and a `$ouds-heading-large-marker-img` asset. It is available on Orange and Orange Compact; Sosh does not define a marker image, so `.marker` has no visible effect there.
## Display
@@ -81,9 +84,7 @@ Sass: `$display-font-sizes`, `$display-font-weight`, `$display-font-family`, `$d
## Body
-Regular body text, used for paragraphs, descriptions, and informational messages. Only headings, display
-headings, and `` text use **bold** by default; body text uses `normal` font-weight (overridable via
-[font weight utilities](../utilities/text.md)).
+Regular body text, used for paragraphs, descriptions, and informational messages. Only headings, display headings, and `` text use **bold** by default; body text uses `normal` font-weight (overridable via [font weight utilities](../utilities/text.md)).
| Reference | Class/Element |
| ----------- | --------------------- |
@@ -106,8 +107,7 @@ headings, and `` text use **bold** by default; body text uses `normal` f
This is a small paragraph.
```
-`.lead`, default `
`, and `.small`/`` are equivalent to the font-size text utilities `.fs-bl`, `.fs-bm`,
-`.fs-bs` — all of them also set `line-height`, `letter-spacing`, and `max-width`.
+`.lead`, default `
`, and `.small`/`` are equivalent to the font-size text utilities `.fs-bl`, `.fs-bm`, `.fs-bs` — all of them also set `line-height`, `letter-spacing`, and `max-width`.
## Inline Text Elements
@@ -136,8 +136,7 @@ Equivalent classes: `.mark`, `.small`, `.text-decoration-underline`, `.text-deco
## Label
-Label is non-responsive text for compact UI components such as buttons, form fields, badges, and tags — single
-value regardless of breakpoint (non-responsive), unlike Heading/Display/Body (responsive). Four size levels:
+Label is non-responsive text for compact UI components such as buttons, form fields, badges, and tags — single value regardless of breakpoint (non-responsive), unlike Heading/Display/Body (responsive). Four size levels:
| Class | Level |
| ---------- | -------------- |
@@ -154,12 +153,9 @@ Label texts use `normal` font-weight by default too.
## Code
-Styles technical content like code snippets, commands, system values, and identifiers, using a monospace
-typeface. Single size — reserve it for content that genuinely needs a code-like representation.
+Styles technical content like code snippets, commands, system values, and identifiers, using a monospace typeface. Single size — reserve it for content that genuinely needs a code-like representation.
-> **Color:** `` and `
` no longer force a muted text color by default (the library leaves `color` to
-> inherit the surrounding text color). If a muted appearance is desired, apply it explicitly, e.g.
-> `color: var(--bs-color-content-muted)`.
+> **Color:** `` and `
` no longer force a muted text color by default (the library leaves `color` to inherit the surrounding text color). If a muted appearance is desired, apply it explicitly, e.g. `color: var(--bs-color-content-muted)`.
### Inline code
@@ -183,5 +179,4 @@ if (document.getElementById('myId')) {
## Sizing text in custom components
-To size text in a custom component, use the `get-font-size()` composite-token mixin — see
-[Tokens](../foundation/tokens.md#composite-tokens).
+To size text in a custom component, use the `get-font-size()` composite-token mixin — see [Tokens](../foundation/tokens.md#composite-tokens).
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
index 12a72d1ec5..235a295ad6 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
@@ -66,8 +66,7 @@ Styled via `border-top`, inherits `border-color` via `color`. Customize with bor
## Blockquotes
-Style applies directly to the bare `
` element — **there is no `.blockquote` class** (removed; do not
-add it). Uses [body large text](../components/typography.md#body).
+Style applies directly to the bare `
` element — **there is no `.blockquote` class** (removed; do not add it). Uses [body large text](../components/typography.md#body).
```html
@@ -77,11 +76,7 @@ add it). Uses [body large text](../components/typography.md#body).
### Naming a source
-The HTML spec requires attribution to be placed outside the `
`. Wrap the `
` in a
-`` and add a `` (or a block-level element like `
`) with the `.blockquote-footer` class
-**immediately after** the `
` — it only renders its styling (dash prefix, body small text) when it is
-the adjacent sibling of a `
` (CSS selector `blockquote + .blockquote-footer`). Wrap the source name in
-``.
+The HTML spec requires attribution to be placed outside the `
`. Wrap the `
` in a `` and add a `` (or a block-level element like `
`) with the `.blockquote-footer` class **immediately after** the `
` — it only renders its styling (dash prefix, body small text) when it is the adjacent sibling of a `
` (CSS selector `blockquote + .blockquote-footer`). Wrap the source name in ``.
```html
@@ -94,9 +89,7 @@ the adjacent sibling of a `
` (CSS selector `blockquote + .blockquote
```
-> **Breaking change (v1.6.0):** previously `.blockquote` and `.blockquote-footer` worked as standalone classes.
-> Now the plain `
` element carries the style, and `.blockquote-footer` requires the adjacent-sibling
-> structure above to be styled.
+> **Breaking change (v1.6.0):** previously `.blockquote` and `.blockquote-footer` worked as standalone classes. Now the plain `
` element carries the style, and `.blockquote-footer` requires the adjacent-sibling structure above to be styled.
## Lists
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md b/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
index 583331f941..967940ba80 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/tokens.md
@@ -30,9 +30,7 @@ OUDS Web design tokens (from Figma) are structured in a **three-tier architectur
### Font tokens: `get-font-size()` mixin
-Font tokens can't be used as plain Sass/CSS variables — they're aggregated into the `get-font-size()` mixin,
-which takes the font reference name as a parameter. Use it to size text in custom components. Levels: heading
-(`heading-xlarge/large/medium/small`), body (`body-large/medium/small`), label (`label-xlarge/large/medium/small`).
+Font tokens can't be used as plain Sass/CSS variables — they're aggregated into the `get-font-size()` mixin, which takes the font reference name as a parameter. Use it to size text in custom components. Levels: heading (`heading-xlarge/large/medium/small`), body (`body-large/medium/small`), label (`label-xlarge/large/medium/small`).
```scss
.my-custom-component {
From a29e0b8ef7943047633883e163b0d15067b22b3e Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 9 Oct 2026 18:28:51 +0200
Subject: [PATCH 44/52] update doc for classes .hX
---
site/src/content/docs/components/typography.mdx | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index 29b9b63f0a..b7c94320aa 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -2,6 +2,7 @@
title: Typography
description: Typography is a set of UI elements that structure and style text content, including headings, display text, body text, labels, and code, used to establish visual hierarchy and ensure consistent, accessible reading across OUDS Web.
aliases:
+ - "/docs/components/typography/"
- "/docs/foundation/typography/"
- "/docs/content/typography/"
toc: true
@@ -219,17 +220,17 @@ All HTML headings, `
` through `
`, are available. Each class sets `font-s
`.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element.
-h1. OUDS Web heading
+h2. OUDS Web heading looking like h1
-
h2. OUDS Web heading
+
h3. OUDS Web heading looking like h2
-
h3. OUDS Web heading
+
h2. OUDS Web heading looking like h3
-
h4. OUDS Web heading
+
h2. OUDS Web heading looking like h4
-
h5. OUDS Web heading
+
h2. OUDS Web heading looking like h5
-
h6. OUDS Web heading
`} />
+
h2. OUDS Web heading looking like h6
`} />
Please note that:
- The `.h1` to `.h6` classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-hxl`, `.fs-hl`, `.fs-hm`, `.fs-hs`, `.fs-bl`, and `.fs-bm`, except for the `font-weight`. Like heading tags and classes, they set the `font-size`, but also the `line-height`, the `letter-spacing` and the `max-width`.
@@ -243,7 +244,7 @@ A brand-colored marker can be displayed below the heading large (`
` or `.h2`
h2. OUDS Web heading with marker
-
h2. OUDS Web heading with marker
`} />
+
h3. OUDS Web heading looking like h2 with marker
`} />
## [[comp]] Display
From fd09ab0a6581a1d49e6d06d3737a36573c81b0ab Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Fri, 9 Oct 2026 18:29:00 +0200
Subject: [PATCH 45/52] update skills
---
.../references/components/typography.md | 83 ++++---------------
.../references/foundation/reboot.md | 17 +++-
2 files changed, 34 insertions(+), 66 deletions(-)
diff --git a/skills/using-ouds-web-version-major-minor/references/components/typography.md b/skills/using-ouds-web-version-major-minor/references/components/typography.md
index 4424581317..506a2f40f5 100644
--- a/skills/using-ouds-web-version-major-minor/references/components/typography.md
+++ b/skills/using-ouds-web-version-major-minor/references/components/typography.md
@@ -1,21 +1,12 @@
# Typography
-Typography is a set of UI elements that structure and style text content: headings, display text, body text, labels, and code. Five types: **Heading**, **Display**, **Body**, **Label**, **Code**.
+Typography is a set of UI elements that structure and style text content. Five types: **Heading**, **Display**, **Body**, **Label**, **Code**.
Use the HTML tag matching the **semantic meaning** of the content (heading, paragraph, code snippet, etc.) — never pick a tag just because of how it looks on screen; appearance is handled by the class/token, not the tag.
-## Global Settings
-
-- Custom font stack with native font fallback per OS/device
-- Browser default root `font-size` (16px) — set `$font-size-base` in `rem`
-- `max-width` applied on all font references for readability — remove with `.mw-none` utility
-- `--bs-color-bg-primary` sets `background-color` on `:root` children
-- Sass variables: `$font-family-base`, `$font-size-base`, `$line-height-base`
-- Styles in `_reboot.scss` and `_typography.scss`, variables in `_variables.scss`
-
## Heading
-HTML `
` through `
` — each sets `font-size`, `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. Responsive across 3 ranges.
+HTML `
` through `
` — each sets `font-size`, `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width` (remove with `.mw-none` [width utility](../utilities/sizing.md)). Responsive across 3 breakpoint ranges.
| Heading | Element | Breakpoints 2xs–sm | Breakpoints md–lg | Breakpoints xl+ |
| -------------- | ------- | ------------------ | ----------------- | --------------- |
@@ -35,19 +26,14 @@ HTML `
` through `
` — each sets `font-size`, `line-height`, `letter-spa
h6. OUDS Web heading
```
-Classes `.h1` through `.h6` available for matching heading styling without the HTML element:
+Classes `.h1` through `.h6` are also available, for when a heading needs to be styled like another level without using the associated HTML element:
```html
-
h1. OUDS Web heading
+
h2 element styled like a h1
+
h3 element styled like a h2
```
-```html
-
-
Section title styled larger
-
-
-
Section title styled larger
-```
+> **Prefer the real heading element:** use `
`–`
` to represent headings in the document structure. Use `.h1`–`.h6` only to give an *actual heading* a visual size different from its semantic level (e.g. `
`) — never on a non-heading element such as `
`: screen reader users rely on real heading elements to navigate the page, and a styled `
` is invisible to that navigation.
### Heading with marker
@@ -55,14 +41,14 @@ A brand-colored marker can be displayed below a heading large (`
` or `.h2`)
```html
h2. OUDS Web heading with marker
-
h2. OUDS Web heading with marker
+
h3 element styled like a h2, with marker
```
> **Brand-dependent:** the marker only renders if the active theme defines the `$ouds-typography-heading-large-marker` flag and a `$ouds-heading-large-marker-img` asset. It is available on Orange and Orange Compact; Sosh does not define a marker image, so `.marker` has no visible effect there.
## Display
-Larger, more opinionated heading styles. **OUDS Web uses named sizes, not numbers.**
+Larger, more opinionated heading styles for impactful content (landing pages, marketing, key messages). Use sparingly. **OUDS Web uses named sizes, not numbers.**
| Class | Description |
| ----------------- | ---------------- |
@@ -76,15 +62,15 @@ Larger, more opinionated heading styles. **OUDS Web uses named sizes, not number
Display small
```
-> **Not Bootstrap:** Bootstrap uses `.display-1` through `.display-6`. OUDS Web uses `.display-large`, `.display-medium`, `.display-small`.
+> **Not Bootstrap:** Bootstrap uses `.display-1` through `.display-6`. OUDS Web uses `.display-large`, `.display-medium`, `.display-small`. With `$enable-bootstrap-compatibility: true`, `.display-1` through `.display-6` are also available.
-With `$enable-bootstrap-compatibility: true`, `.display-1` through `.display-6` are also available.
+`.display-large`/`.display-medium`/`.display-small` are equivalent to the font-size text utilities `.fs-dl`/`.fs-dm`/`.fs-ds` (except for `font-weight`) — both also set `line-height`, `letter-spacing`, and `max-width`.
Sass: `$display-font-sizes`, `$display-font-weight`, `$display-font-family`, `$display-font-style`, `$display-line-height`.
## Body
-Regular body text, used for paragraphs, descriptions, and informational messages. Only headings, display headings, and `` text use **bold** by default; body text uses `normal` font-weight (overridable via [font weight utilities](../utilities/text.md)).
+Regular body text, used for paragraphs, descriptions, and informational messages. Only headings, display headings, and `` text use **bold** by default; body text uses `normal` font-weight (overridable via [font weight utilities](../utilities/text.md)). Body medium is set by default on the `:root` element.
| Reference | Class/Element |
| ----------- | --------------------- |
@@ -92,51 +78,22 @@ Regular body text, used for paragraphs, descriptions, and informational messages
| Body medium | Default `
` |
| Body small | `.small` or `` |
-### Lead
-
```html
-
- This is a lead paragraph. It stands out from regular paragraphs.
-
-```
+
This is a lead paragraph. It stands out from regular paragraphs.
-### Small
+
This is a regular body paragraph.
-```html
-
This is a small paragraph.
This is a small paragraph.
+
This is another small paragraph.
```
-`.lead`, default `
`, and `.small`/`` are equivalent to the font-size text utilities `.fs-bl`, `.fs-bm`, `.fs-bs` — all of them also set `line-height`, `letter-spacing`, and `max-width`.
+`.lead`, default `
`, and `.small`/`` are equivalent to the font-size text utilities `.fs-bl`, `.fs-bm`, `.fs-bs` — all of them also set `line-height`, `letter-spacing`, and `max-width`. Use the appropriate HTML tag to convey the right semantic meaning (generally a `
`).
-## Inline Text Elements
-
-```html
-
You can use the mark tag to highlight text.
-
This line of text is meant to be treated as deleted text.
-
This line of text is meant to be treated as no longer accurate.
-
- This line of text is meant to be treated as an addition to the
- document.
-
-
This line of text will render as underlined.
-
This line of text is meant to be treated as fine print.
-
This line rendered as bold text.
-
- This line rendered as bold text too, but would natively be
- italicized.
-
-```
-
-Equivalent classes: `.mark`, `.small`, `.text-decoration-underline`, `.text-decoration-line-through`.
-
-> For blockquotes, see [Reboot](../foundation/reboot.md#blockquotes).
+> For other inline text elements (``, ``, ``, ``, ``) and blockquotes, see [Reboot](../foundation/reboot.md).
## Label
-Label is non-responsive text for compact UI components such as buttons, form fields, badges, and tags — single value regardless of breakpoint (non-responsive), unlike Heading/Display/Body (responsive). Four size levels:
+Label is non-responsive text for compact UI components such as buttons, form fields, badges, and tags — single value regardless of breakpoint, unlike Heading/Display/Body (responsive). Four size levels, `normal` font-weight by default:
| Class | Level |
| ---------- | -------------- |
@@ -149,8 +106,6 @@ Label is non-responsive text for compact UI components such as buttons, form fie
Label medium text
```
-Label texts use `normal` font-weight by default too.
-
## Code
Styles technical content like code snippets, commands, system values, and identifiers, using a monospace typeface. Single size — reserve it for content that genuinely needs a code-like representation.
@@ -177,6 +132,4 @@ if (document.getElementById('myId')) {
```
-## Sizing text in custom components
-
-To size text in a custom component, use the `get-font-size()` composite-token mixin — see [Tokens](../foundation/tokens.md#composite-tokens).
+> To size text in a custom component rather than using one of the classes above, use the `get-font-size()` composite-token mixin — see [Tokens](../foundation/tokens.md#composite-tokens).
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
index 235a295ad6..9c0bd4b98d 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
@@ -15,7 +15,7 @@ Element-specific CSS changes providing a consistent baseline. Builds on Normaliz
- `box-sizing: border-box` globally on all elements (including `::before`/`::after`)
- No base `font-size` on `` (browser default 16px assumed); `font-size: 1rem` on `:root` children
- `:root` children set `font-family`, `font-weight`, `line-height`, `color`
-- `background-color` on `:root` children defaults to `#fff`
+- `background-color` on `:root` children set via `--bs-color-bg-primary`
## Font Stack
@@ -32,6 +32,21 @@ Custom fonts loaded from CDN with native font stack as fallback. Font faces gene
`
`: `margin-top` removed, `margin-bottom` set to `$ouds-space-fixed-medium`. Remove with `.mb-none`.
+## Inline Text Elements
+
+```html
+
You can use the mark tag to highlight text.
+
This line of text is meant to be treated as deleted text.
+
This line of text is meant to be treated as no longer accurate.
+
This line of text is meant to be treated as an addition to the document.
+
This line of text will render as underlined.
+
This line of text is meant to be treated as fine print.
+
This line rendered as bold text.
+
This line rendered as bold text too, but would natively be italicized.
+```
+
+Use these tags for semantic purpose: `` (marked/highlighted for reference), `` (side-comments, legal text — uses [body small](../components/typography.md#body)), `` (no longer relevant/accurate), `` (non-textual annotation). To style text without the semantic meaning, use the equivalent classes instead: `.mark`, `.small`, `.text-decoration-underline` (like ``), `.text-decoration-line-through` (like ``). `` and `` remain available for highlighting without added importance / voice & technical terms.
+
## Links
- Bold and underlined by default
From 18ce77329f6f1ffbbc08a0c036f259bdb82efd51 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Mon, 19 Oct 2026 09:45:44 +0200
Subject: [PATCH 46/52] Update site/data/_components-versions.yml
Co-authored-by: Louis-Maxime Piton
---
site/data/_components-versions.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site/data/_components-versions.yml b/site/data/_components-versions.yml
index 20dbb4968d..cfee770198 100644
--- a/site/data/_components-versions.yml
+++ b/site/data/_components-versions.yml
@@ -39,7 +39,7 @@
- name: 'circular-progress-indicator'
value: '1.2.0'
- name: 'code'
- value: '1.0 .0'
+ value: '1.0.0'
- name: 'display'
value: '1.0.0'
- name: 'divider'
From 1b630bea305e5d5eb1244acfe843f7bd607bf653 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Mon, 19 Oct 2026 18:09:00 +0200
Subject: [PATCH 47/52] Updates after LM review
---
.../scss/tokens/_composite.scss | 2 +-
packages/orange/scss/tokens/_composite.scss | 2 +-
packages/sosh/scss/tokens/_composite.scss | 2 +-
scss/_reboot.scss | 2 +-
scss/_typography.scss | 18 ++
scss/_variables.scss | 1 +
site/data/components-details.ts | 2 +-
.../content/docs/components/typography.mdx | 286 +++++++++---------
.../migration-from-boosted.mdx | 5 +-
.../docs/getting-started/migration.mdx | 6 +-
.../content/docs/utilities/icons-sizing.mdx | 6 +-
11 files changed, 180 insertions(+), 152 deletions(-)
diff --git a/packages/orange-compact/scss/tokens/_composite.scss b/packages/orange-compact/scss/tokens/_composite.scss
index 8dc30c262f..6c04c7a768 100644
--- a/packages/orange-compact/scss/tokens/_composite.scss
+++ b/packages/orange-compact/scss/tokens/_composite.scss
@@ -64,7 +64,7 @@ $ouds-font-family-monospace-stack:
monospace !default;
// scss-docs-end ouds-composite-font-monospace
// scss-docs-start ouds-composite-typography
-// NB: SVG should contain paddings and shouldn't have any `fill` attribute
+// NB: Set here the marker SVG exported from Figma, including paddings, with no `fill` attributes. Set it to null if there is not marker available for this theme.
$ouds-heading-large-marker-img: url("data:image/svg+xml,") !default;
$ouds-heading-large-marker-width: 30px !default;
$ouds-heading-large-marker-height: 12px !default;
diff --git a/packages/orange/scss/tokens/_composite.scss b/packages/orange/scss/tokens/_composite.scss
index 76846afdd8..71180641b7 100644
--- a/packages/orange/scss/tokens/_composite.scss
+++ b/packages/orange/scss/tokens/_composite.scss
@@ -64,7 +64,7 @@ $ouds-font-family-monospace-stack:
monospace !default;
// scss-docs-end ouds-composite-font-monospace
// scss-docs-start ouds-composite-typography
-// NB: SVG should contain paddings and shouldn't have any `fill` attribute
+// NB: Set here the marker SVG exported from Figma, including paddings, with no `fill` attributes. Set it to null if there is not marker available for this theme.
$ouds-heading-large-marker-img: url("data:image/svg+xml,") !default;
$ouds-heading-large-marker-width: 30px !default;
$ouds-heading-large-marker-height: 12px !default;
diff --git a/packages/sosh/scss/tokens/_composite.scss b/packages/sosh/scss/tokens/_composite.scss
index 89ba5b2d3f..1bca288afa 100644
--- a/packages/sosh/scss/tokens/_composite.scss
+++ b/packages/sosh/scss/tokens/_composite.scss
@@ -55,7 +55,7 @@ $ouds-font-family-monospace-stack:
monospace !default;
// scss-docs-end ouds-composite-font-monospace
// scss-docs-start ouds-composite-typography
-// NB: SVG should contain paddings and shouldn't have any `fill` attribute
+// NB: Set here the marker SVG exported from Figma, including paddings, with no `fill` attributes. Set it to null if there is not marker available for this theme.
$ouds-heading-large-marker-img: null !default;
$ouds-heading-large-marker-width: 0 !default;
$ouds-heading-large-marker-height: 0 !default;
diff --git a/scss/_reboot.scss b/scss/_reboot.scss
index 7e93197617..6a6e05e6a2 100644
--- a/scss/_reboot.scss
+++ b/scss/_reboot.scss
@@ -275,7 +275,7 @@ blockquote {
blockquote + .blockquote-footer {
margin-top: -$ouds-space-fixed-medium;
margin-bottom: $ouds-space-fixed-medium;
- @include get-font-size("body-small"); // OUDS mod: instead of `font-size: $blockquote-footer-font-size`
+ @include get-font-size("body-small");
color: $blockquote-footer-color;
&::before {
diff --git a/scss/_typography.scss b/scss/_typography.scss
index 7088fbf380..453701cf8f 100644
--- a/scss/_typography.scss
+++ b/scss/_typography.scss
@@ -85,3 +85,21 @@
margin-right: $list-inline-padding;
}
}
+
+//
+// Misc
+//
+
+// Blockquotes
+// deprecated in OUDS Web v1.6
+.blockquote {
+ margin-bottom: $blockquote-margin-y;
+
+ > p {
+ @include get-font-size("body-large");
+ }
+
+ > :last-child {
+ margin-bottom: 0;
+ }
+}
diff --git a/scss/_variables.scss b/scss/_variables.scss
index 80706fff2e..3552893510 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -747,6 +747,7 @@ $text-muted: var(--#{$prefix}secondary-color) !default; // Depr
// OUDS mod: no $initialism-font-size
+$blockquote-margin-y: $ouds-space-fixed-medium !default; // OUDS mod: instead of `1rem`
// OUDS mod: no `$blockquote-font-size`
$blockquote-footer-color: var(--#{$prefix}color-content-muted) !default; // OUDS mod: instead of `$gray-600`
// OUDS mod: no `$blockquote-footer-font-size`
diff --git a/site/data/components-details.ts b/site/data/components-details.ts
index 698760d44a..febab47521 100644
--- a/site/data/components-details.ts
+++ b/site/data/components-details.ts
@@ -101,7 +101,7 @@ export const componentsDetails: ComponentCardData[] = [
category: 'Content display',
snippet: `
- Hello World!
+ Code
`
},
{
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index b7c94320aa..3b3e539e89 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -63,20 +63,20 @@ export const screenSize = [
-
Heading
+
Display
-
Heading is a UI element that styles typography to structure content and define the hierarchy of information within an interface.
+
Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages.
-
Display
+
Heading
-
Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages.
+
Heading is a UI element that styles typography to structure content and define the hierarchy of information within an interface.
@@ -103,7 +103,7 @@ export const screenSize = [
- document.getElementById('HelloWorld')
+ Code
Code is a UI element that styles typography for technical content like code snippets, commands, system values, and identifiers.
@@ -111,18 +111,126 @@ export const screenSize = [
-### Accessibility
+### Approach
+Typography elements are provided as components that include the `font-family`, `font-size`, `line-height`, `letter-spacing`, `max-width`, and for some of them, `font-weight`. However, certain elements can be modified using our utilities. Take a look at our [font weight utilities]([[docsref:/utilities/text#font-weight]]), [icon sizing utilities]([[docsref:/utilities/icons-sizing]]), [color utilities]([[docsref:/utilities/color]]), and the `.mw-none` class in [width utilities]([[docsref:/utilities/sizing]]).
+
+### Accessibility
To ensure accessibility, make sure you choose the HTML tags you use, based on their **semantic meaning**; whether it is a heading, plain text, or a snippet of code, you should not use the same tag, regardless of how it appears on screen. Each tag conveys its own semantic meaning, which is communicated to screen readers.
+## [[comp]] Display
+
+Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages.
+
+The display features large type sizes that capture attention and create strong visual emphasis. Variants automatically adjust across breakpoints to maintain a consistent visual hierarchy on all screen sizes. Use it sparingly to preserve its impact and effectiveness.
+
+Display has three size levels: large, medium, and small. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`.
+
+Please note that:
+- You have to use the appropriate HTML tag to convey the right semantic meaning.
+- The `.display-*` classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-dl`, `.fs-dm`, and `.fs-ds`, except for the `font-weight`.
+- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+- You should not use any icon with our `.display-*` font sizes, because we prefer to keep the place for the text.
+
+Here are the associated `font-size`s depending on the breakpoints:
+
+
+
+
+
+
Display reference
+
Font size from `2xs` to `sm`
+
Font size from `md` to `lg`
+
Font size for `xl` and upper
+
+
+
+ {
+ displayLevel.map((level) => (
+
+
+ {level === 'display-large' && (<>Display large ({'.display-large'})>)}
+ {level === 'display-medium' && (<>Display medium ({'.display-medium'})>)}
+ {level === 'display-small' && (<>Display small ({'.display-small'})>)}
+
`} />
+
## [[comp]] Heading
Heading is a UI element that styles typography to structure content and define the hierarchy of information within an interface.
The heading features multiple sizes options, to help users quickly understand the organization of a page or section. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Heading serve as the primary entry point for visual navigation.
-All HTML headings, `
` through `
`, are available. Each class sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. If you want to get rid of the `max-width`, use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints.
+All HTML headings, `
` through `
`, are available. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. `.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element.
+
+Please note that:
+- You have to use the appropriate HTML tag to convey the right semantic meaning. A heading tag meaning is not reflected by the corresponding class on a `
` tag.
+- The heading tags and classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-hxl`, `.fs-hl`, `.fs-hm`, `.fs-hs`, `.fs-bl`, and `.fs-bm`, except for the `font-weight`.
+- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+- You can easily add an icon with your headings using our [heading icon size utilities]([[docsref:/utilities/icons-sizing#heading]]).
+
+Here are the associated `font-size`s depending on the breakpoints:
@@ -160,7 +268,6 @@ All HTML headings, `
` through `
`, are available. Each class sets `font-s
-
See more details about the heading classes
@@ -218,8 +325,6 @@ All HTML headings, `
` through `
`, are available. Each class sets `font-s
h6. OUDS Web heading
`} />
-`.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element.
-
h2. OUDS Web heading looking like h1
h3. OUDS Web heading looking like h2
@@ -232,127 +337,37 @@ All HTML headings, `
` through `
`, are available. Each class sets `font-s
h2. OUDS Web heading looking like h6
`} />
-Please note that:
-- The `.h1` to `.h6` classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-hxl`, `.fs-hl`, `.fs-hm`, `.fs-hs`, `.fs-bl`, and `.fs-bm`, except for the `font-weight`. Like heading tags and classes, they set the `font-size`, but also the `line-height`, the `letter-spacing` and the `max-width`.
-- You have to use the appropriate HTML tag to convey the right semantic meaning. A heading tag meaning is not reflected by the corresponding class on a `
` tag.
-- You can easily add an icon with your headings using our [heading icon size utilities]([[docsref:/utilities/icons-sizing#headings]]).
-
### Heading with marker
-A brand-colored marker can be displayed below the heading large (`
` or `.h2`), to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker class`.
+A brand-colored marker can be displayed below the heading large (`
` or `.h2`), to enhance its visual emphasis and reinforce information hierarchy, by adding the `.marker` class.
h2. OUDS Web heading with marker
h3. OUDS Web heading looking like h2 with marker
`} />
-## [[comp]] Display
-
-Display is a UI element that styles typography for impactful content like landing pages, marketing campaigns, and key messages.
-
-The display features large type sizes that capture attention and create strong visual emphasis. Variants automatically adjust across breakpoints to maintain a consistent visual hierarchy on all screen sizes. Use it sparingly to preserve its impact and effectiveness.
-
-We provide `.display-*` from `large` through `small`. Each class sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. If you want to get rid of the `max-width`, please make sure to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Here are the associated `font-size`s depending on the breakpoints.
-
-
-
-
-
-
Display reference
-
Font size from `2xs` to `sm`
-
Font size from `md` to `lg`
-
Font size for `xl` and upper
-
-
-
- {
- displayLevel.map((level) => (
-
-
- {level === 'display-large' && (<>Display large ({'.display-large'})>)}
- {level === 'display-medium' && (<>Display medium ({'.display-medium'})>)}
- {level === 'display-small' && (<>Display small ({'.display-small'})>)}
-
`} />
-
-Please note that:
-- The `.display-large` to `.display-small` classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-dl`, `.fs-dm`, and `.fs-ds`, except for the `font-weight`. Like display classes, they set not only the `font-size`, but also the `line-height`, the `letter-spacing`, and the `max-width`.
-- You have to use the appropriate HTML tag to convey the right semantic meaning.
-- You should not use any icon with our `.display-*` font sizes, because we prefer to keep the place for the text.
-
## [[comp]] Body
Body is a UI element that styles typography for common text content like paragraphs, descriptions, and informational messages.
The body features multiple size options, to allow content importance to be expressed while maintaining consistency. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Body prioritize readability and provide a comfortable reading experience.
-Regular body text forms the core of your content. Body text has three size levels: large (for emphasis), medium (default), and small (for supporting information). Each class sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. To remove the `max-width`, use the `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Body texts use `font-weight: normal` by default, but can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
+Body text has three size levels: large (for emphasis), medium (default), and small (for supporting information). Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. Body texts use `font-weight: normal` by default
+
+Please note that:
+- You have to use the appropriate HTML tag to convey the right semantic meaning, generally a `
`.
+- The `.lead`, `
` and `.small` or `` texts are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-bl`, `.fs-bm`, and `.fs-bs`.
+- You can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
+- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+- You can easily add an icon with your body texts using our [body text icon size utilities]([[docsref:/utilities/icons-sizing#body]]).
By default, body medium is set on the `:root` element, and the `max-width` property is applied to `
` elements.
+Here are the associated `font-size`s depending on the breakpoints:
+
@@ -368,9 +383,9 @@ Regular body text forms the core of your content. Body text has three size level
textLevel.map((level) => (
- {level === 'body-large' && (<>Body large ({'.lead'})>)}
- {level === 'body-medium' && (<>Body medium (default {'
'}
)>)}
- {level === 'body-small' && (<>Body small ({'.small'} or {''})>)}
+ {level === 'body-large' && (<>Body large ({'.lead'} or .fs-bl)>)}
+ {level === 'body-medium' && (<>Body medium (default {'
'}
or .fs-bm)>)}
+ {level === 'body-small' && (<>Body small ({'.small'}, {''} or .fs-bs)>)}
{
screenSize.map((size) => (
@@ -403,9 +418,9 @@ Regular body text forms the core of your content. Body text has three size level
textLevel.map((level) => (
- {level === 'body-large' && (<>Body large ({'.lead'})>)}
- {level === 'body-medium' && (<>Body medium (default {'
'}
)>)}
- {level === 'body-small' && (<>Body small ({'.small'} or {''})>)}
+ {level === 'body-large' && (<>Body large ({'.lead'} or .fs-bl)>)}
+ {level === 'body-medium' && (<>Body medium (default {'
'}
or .fs-bm)>)}
+ {level === 'body-small' && (<>Body small ({'.small'} or {''} or .fs-bs)>)}
{
screenSize.map((size) => (
@@ -428,19 +443,18 @@ Regular body text forms the core of your content. Body text has three size level
- This is a lead paragraph. It stands out from regular paragraphs.
+ This is a body large paragraph. It stands out from regular paragraphs.
-
This is a regular body paragraph.
+
+ This is another body large paragraph.
+
-
This is a small paragraph.
+
This is a regular body medium paragraph.
-
This is another small paragraph.
`} />
+
This is a body small paragraph.
-Please note that:
-- The `.lead`, `
` and `.small` or `` texts are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-bl`, `.fs-bm`, and `.fs-bs`. Like body texts, they set the `font-size`, but also the `line-height`, the `letter-spacing` and the `max-width`.
-- You have to use the appropriate HTML tag to convey the right semantic meaning, generally a `
`.
-- You can easily add an icon with your body texts using our [body text icon size utilities]([[docsref:/utilities/icons-sizing#body-texts]]).
+
This is another body small paragraph.
`} />
## [[comp]] Label
@@ -448,7 +462,14 @@ Label is a UI element that styles typography for compact interface components su
The label is non-responsive and maintains a fixed size across all breakpoints. This ensures visual consistency and predictable behavior within space-constrained UI elements. Labels are preferred when content is displayed within small components.
-Labels have four size levels: xlarge, large, medium, and small. Each class sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. To remove the `max-width`, use the `.mw-none` [width utility]([[docsref:/utilities/sizing]]). Label texts use `font-weight: normal` by default, but can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
+Labels have four size levels: xlarge, large, medium, and small. Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`.
+
+Please note that:
+- You have to use the appropriate HTML tag to convey the right semantic meaning, generally a `
`.
+- You can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
+- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+
+Here are the associated `font-size`s:
@@ -530,29 +551,16 @@ Labels have four size levels: xlarge, large, medium, and small. Each class sets
Label small text
`} />
-Please note that you have to use the appropriate HTML tag to convey the right semantic meaning.
-
## [[comp]] Code
Code element is a UI element that styles typography for technical content like code snippets, commands, system values, and identifiers.
The code employs a monospace typeface to maintain character alignment and enhance the readability of structured content. Offered in one size, it ensures a uniform presentation of technical information across the product. Its application should be restricted to content that necessitates a precise code-like representation.
-### Inline code
Use the `` element to mark short code snippets within text. The `` element uses the monospace code font stack and is styled to stand out from surrounding text.
<section> should be wrapped as inline.`} />
-### Code blocks
-
-Use `
` for displaying multiple lines of code. The `
` element preserves whitespace and formatting, particularly indentation, while the `` element marks the content as code.
-
- if (document.getElementById('myId')) {
- document.getElementById('myId').addEventListener('click', () => {
- ...
- })
- }
-
`} />
diff --git a/site/src/content/docs/getting-started/migration-from-boosted.mdx b/site/src/content/docs/getting-started/migration-from-boosted.mdx
index 2bdcc76290..b37ea5f25e 100644
--- a/site/src/content/docs/getting-started/migration-from-boosted.mdx
+++ b/site/src/content/docs/getting-started/migration-from-boosted.mdx
@@ -36,7 +36,6 @@ Let’s start with the most obvious change you’ll notice: the name. **Boosted
- `boosted.esm.min.js` → `ouds-web.esm.min.js`
- `boosted.js` → `ouds-web.js`
- `boosted.min.js` → `ouds-web.min.js`
-- The SCSS file `_type.scss` has been renamed to `_typography.scss` for more consistency.
From now on, OUDS Web won’t embed Bootstrap elements that are not part of Orange Unified Design System. However, you can still use our Bootstrap compatibility mode by using `ouds-web-bootstrap.css` and `ouds-web-bootstrap.min.css`.
@@ -77,7 +76,7 @@ Read more about the [font stack]([[docsref:/foundation/reboot#font-stack]]) for
- Breaking Abbreviation class `.initialism` has been removed.
-- Breaking `.blockquote` class has been removed, you can still use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
+- Warning `.blockquote` class has been deprecated, you can use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
- Warning Default spacing values now use `px`s instead of `em`s for fixed component spacing, to keep as much space as possible for meaningful content on zoom.
@@ -905,6 +904,8 @@ See [our new Text Area page]([[docsref:/components/text-area]]) for more informa
- Warning `scss/mixins/_alert.scss` doesn’t exist anymore. If you were importing it in your project, please make sure to remove it.
+- Breaking `scss/_type.scss` has been renamed to `scss/_typography.scss`. If you were importing it in your project, please make sure to update it accordingly.
+
- Warning `scss/vendor/_rfs.scss` has been removed. It was deprecated and should not have been used.
- Breaking `font-size()` mixin has been removed. Please refer to `get-font-size()` mixin instead.
diff --git a/site/src/content/docs/getting-started/migration.mdx b/site/src/content/docs/getting-started/migration.mdx
index 1b90d0ef58..a6142df056 100644
--- a/site/src/content/docs/getting-started/migration.mdx
+++ b/site/src/content/docs/getting-started/migration.mdx
@@ -73,11 +73,11 @@ toc: true
### Sass
-- Warning `_type.scss` has been renamed to `_typography.scss` for more consistency. You will need to change this name if you create your own custom import.
+- Breaking `_type.scss` has been renamed to `_typography.scss` for more consistency. You will need to change this name if you create your own custom import.
### Reboot
-- Breaking `.blockquote` class has been removed, you can still use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
+- Warning `.blockquote` class has been deprecated, you can use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
### Dual mode
@@ -212,7 +212,7 @@ toc: true
#### Text
-- New Labels have been added to font size text utilities : `.fs-lxl`, `.fs-ll`, `.fs-lm`, `.fs-ls` are now available. Read more in our [typography page]([[docsref:utilities/text#font-size]]).
+- New Labels have been added to font size text utilities: `.fs-lxl`, `.fs-ll`, `.fs-lm`, `.fs-ls` are now available. Read more in our [text utilities page]([[docsref:utilities/text#font-size]]).
### CSS and Sass variables
diff --git a/site/src/content/docs/utilities/icons-sizing.mdx b/site/src/content/docs/utilities/icons-sizing.mdx
index 2fe5849043..95485d2a11 100644
--- a/site/src/content/docs/utilities/icons-sizing.mdx
+++ b/site/src/content/docs/utilities/icons-sizing.mdx
@@ -68,7 +68,7 @@ Every icon size utility class presented in here has the common following code:
-## Headings
+## Heading
Here are the rules to follow for [headings]([[docsref:/components/typography#heading]]). These icons’ sizes are responsive.
@@ -254,11 +254,11 @@ Here are the rules to follow for [headings]([[docsref:/components/typography#hea
H6 with small icon
`} />
-## Display texts
+## Display
You should not use any icon with our [display texts]([[docsref:/components/typography#display]]), because we prefer to keep the place for the text.
-## Body texts
+## Body
Here are the rules to follow for [body texts]([[docsref:/components/typography#body]]). These icons’ sizes are responsive.
From 62a2689d9478af2f9e13e3d823575ee74d7e869a Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Tue, 20 Oct 2026 11:30:48 +0200
Subject: [PATCH 48/52] css snapshots
---
.../__snapshots__/ouds-web-bootstrap.css | 14 ++++++++++++++
.../snapshot-tests/__snapshots__/ouds-web.css | 14 ++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index 47ea3567e9..b98a4b0480 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -1745,6 +1745,20 @@ h2.marker::after,
margin-right: 0.25rem;
}
+.blockquote {
+ margin-bottom: 16px;
+}
+.blockquote > p {
+ max-width: var(--bs-font-max-width-body-large);
+ font-size: var(--bs-font-size-body-large);
+ line-height: var(--bs-font-line-height-body-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-large);
+}
+.blockquote > :last-child {
+ margin-bottom: 0;
+}
+
.img-fluid {
max-width: 100%;
height: auto;
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index 162e7cfca9..d5087c3839 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -1526,6 +1526,20 @@ h2.marker::after,
margin-right: 0.25rem;
}
+.blockquote {
+ margin-bottom: 16px;
+}
+.blockquote > p {
+ max-width: var(--bs-font-max-width-body-large);
+ font-size: var(--bs-font-size-body-large);
+ line-height: var(--bs-font-line-height-body-large);
+ /* rtl:remove */
+ letter-spacing: var(--bs-font-letter-spacing-body-large);
+}
+.blockquote > :last-child {
+ margin-bottom: 0;
+}
+
.img-fluid {
max-width: 100%;
height: auto;
From 1f49605b02274a677daffac5a96d7874081d66a0 Mon Sep 17 00:00:00 2001
From: Hannah Issermann
Date: Wed, 21 Oct 2026 14:42:05 +0200
Subject: [PATCH 49/52] Update reboot after LM review + skills
---
.../token-system/references/architecture.md | 1 +
.github/skills/validate-tokens/SKILL.md | 2 +-
scss/_reboot.scss | 5 +-
scss/_typography.scss | 2 +-
scss/_variables.scss | 5 -
.../__snapshots__/ouds-web-bootstrap.css | 6 +-
.../snapshot-tests/__snapshots__/ouds-web.css | 6 +-
.../content/docs/components/typography.mdx | 16 ++-
site/src/content/docs/foundation/reboot.mdx | 98 +++++++------------
.../migration-from-boosted.mdx | 4 +-
.../docs/getting-started/update-guide.mdx | 2 +-
.../references/foundation/reboot.md | 8 +-
.../getting-started/update-guide.md | 2 +-
13 files changed, 66 insertions(+), 91 deletions(-)
diff --git a/.github/skills/token-system/references/architecture.md b/.github/skills/token-system/references/architecture.md
index 7ccfcc1b2c..e6aaeb296e 100644
--- a/.github/skills/token-system/references/architecture.md
+++ b/.github/skills/token-system/references/architecture.md
@@ -34,6 +34,7 @@ Figma (design decisions)
- Font-family stack strings
- Embedded SVG icon data URIs
- Sass maps
+- Heading marker SVG and dimensions (`$ouds-heading-large-marker-img/-width/-height`, set to `null` for a brand without a marker)
---
diff --git a/.github/skills/validate-tokens/SKILL.md b/.github/skills/validate-tokens/SKILL.md
index ab2a9ed309..ed8720bf56 100644
--- a/.github/skills/validate-tokens/SKILL.md
+++ b/.github/skills/validate-tokens/SKILL.md
@@ -21,7 +21,7 @@ Read all 3 files and extract `$ouds-*` definitions:
## Step 2 — Identify component SCSS files
-All `scss/_*.scss` + `scss/forms/_*.scss`, excluding: `_variables.scss`, `_config.scss`, `_functions.scss`, `_mixins.scss`, `_maps.scss`, `_root.scss`, `_reboot.scss`, `_utilities.scss`, `_helpers.scss`, `_grid.scss`, `_containers.scss`, `_images.scss`, `_type.scss`, `_transitions.scss`, `_forms.scss`, `_variables-dark.scss`
+All `scss/_*.scss` + `scss/forms/_*.scss`, excluding: `_variables.scss`, `_config.scss`, `_functions.scss`, `_mixins.scss`, `_maps.scss`, `_root.scss`, `_reboot.scss`, `_utilities.scss`, `_helpers.scss`, `_grid.scss`, `_containers.scss`, `_images.scss`, `_transitions.scss`, `_forms.scss`, `_variables-dark.scss`
---
diff --git a/scss/_reboot.scss b/scss/_reboot.scss
index 6a6e05e6a2..11ef4812e6 100644
--- a/scss/_reboot.scss
+++ b/scss/_reboot.scss
@@ -272,11 +272,12 @@ blockquote {
}
}
-blockquote + .blockquote-footer {
+.blockquote-footer, // deprecated in OUDS Web v1.6
+blockquote + figcaption {
margin-top: -$ouds-space-fixed-medium;
margin-bottom: $ouds-space-fixed-medium;
@include get-font-size("body-small");
- color: $blockquote-footer-color;
+ color: var(--#{$prefix}color-content-muted);
&::before {
content: "\2014\00A0"; // em dash, nbsp
diff --git a/scss/_typography.scss b/scss/_typography.scss
index 453701cf8f..6219735e54 100644
--- a/scss/_typography.scss
+++ b/scss/_typography.scss
@@ -93,7 +93,7 @@
// Blockquotes
// deprecated in OUDS Web v1.6
.blockquote {
- margin-bottom: $blockquote-margin-y;
+ margin-bottom: $ouds-space-fixed-medium;
> p {
@include get-font-size("body-large");
diff --git a/scss/_variables.scss b/scss/_variables.scss
index 3552893510..ebb5d65bc0 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -747,11 +747,6 @@ $text-muted: var(--#{$prefix}secondary-color) !default; // Depr
// OUDS mod: no $initialism-font-size
-$blockquote-margin-y: $ouds-space-fixed-medium !default; // OUDS mod: instead of `1rem`
-// OUDS mod: no `$blockquote-font-size`
-$blockquote-footer-color: var(--#{$prefix}color-content-muted) !default; // OUDS mod: instead of `$gray-600`
-// OUDS mod: no `$blockquote-footer-font-size`
-
$hr-margin-y: $ouds-space-fixed-medium !default; // OUDS mod: instead of `$spacer !default;`
$hr-color: $ouds-color-border-default !default; // OUDS mod: instead of `inherit !default;`
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
index b98a4b0480..150ee8356b 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web-bootstrap.css
@@ -1252,7 +1252,8 @@ blockquote > :last-child {
margin-bottom: 0;
}
-blockquote + .blockquote-footer {
+.blockquote-footer,
+blockquote + figcaption {
margin-top: -16px;
margin-bottom: 16px;
max-width: var(--bs-font-max-width-body-small);
@@ -1262,7 +1263,8 @@ blockquote + .blockquote-footer {
letter-spacing: var(--bs-font-letter-spacing-body-small);
color: var(--bs-color-content-muted);
}
-blockquote + .blockquote-footer::before {
+.blockquote-footer::before,
+blockquote + figcaption::before {
content: "— ";
}
diff --git a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
index d5087c3839..614fd39d7c 100644
--- a/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
+++ b/scss/tests/snapshot-tests/__snapshots__/ouds-web.css
@@ -1087,7 +1087,8 @@ blockquote > :last-child {
margin-bottom: 0;
}
-blockquote + .blockquote-footer {
+.blockquote-footer,
+blockquote + figcaption {
margin-top: -16px;
margin-bottom: 16px;
max-width: var(--bs-font-max-width-body-small);
@@ -1097,7 +1098,8 @@ blockquote + .blockquote-footer {
letter-spacing: var(--bs-font-letter-spacing-body-small);
color: var(--bs-color-content-muted);
}
-blockquote + .blockquote-footer::before {
+.blockquote-footer::before,
+blockquote + figcaption::before {
content: "— ";
}
diff --git a/site/src/content/docs/components/typography.mdx b/site/src/content/docs/components/typography.mdx
index 3b3e539e89..91593d76d1 100644
--- a/site/src/content/docs/components/typography.mdx
+++ b/site/src/content/docs/components/typography.mdx
@@ -125,7 +125,7 @@ Display is a UI element that styles typography for impactful content like landin
The display features large type sizes that capture attention and create strong visual emphasis. Variants automatically adjust across breakpoints to maintain a consistent visual hierarchy on all screen sizes. Use it sparingly to preserve its impact and effectiveness.
-Display has three size levels: large, medium, and small. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`.
+Display has three size levels: large, medium, and small. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. Display uses the [OUDS Web font stack]([[docsref:/foundation/reboot#font-stack]]).
Please note that:
- You have to use the appropriate HTML tag to convey the right semantic meaning.
@@ -222,12 +222,13 @@ Heading is a UI element that styles typography to structure content and define t
The heading features multiple sizes options, to help users quickly understand the organization of a page or section. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Heading serve as the primary entry point for visual navigation.
-All HTML headings, `
` through `
`, are available. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. `.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element.
+All HTML headings, `
` through `
`, are available. Each one sets `font-size`, and also `line-height`, `letter-spacing`, `font-weight: bold`, and `max-width`. `.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but cannot use the associated HTML element. Heading uses the [OUDS Web font stack]([[docsref:/foundation/reboot#font-stack]]).
Please note that:
- You have to use the appropriate HTML tag to convey the right semantic meaning. A heading tag meaning is not reflected by the corresponding class on a `
` tag.
- The heading tags and classes are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-hxl`, `.fs-hl`, `.fs-hm`, `.fs-hs`, `.fs-bl`, and `.fs-bm`, except for the `font-weight`.
- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+- If you want to get rid of the `margin-bottom`, please use our `.mb-none` [spacing utility]([[docsref:/utilities/spacing#margin-and-padding]]).
- You can easily add an icon with your headings using our [heading icon size utilities]([[docsref:/utilities/icons-sizing#heading]]).
Here are the associated `font-size`s depending on the breakpoints:
@@ -353,13 +354,14 @@ Body is a UI element that styles typography for common text content like paragra
The body features multiple size options, to allow content importance to be expressed while maintaining consistency. Variants automatically adjust across breakpoints to ensure optimal readability on all devices. Body prioritize readability and provide a comfortable reading experience.
-Body text has three size levels: large (for emphasis), medium (default), and small (for supporting information). Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. Body texts use `font-weight: normal` by default
+Body text has three size levels: large (for emphasis), medium (default), and small (for supporting information). Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. Body has a `font-weight: normal` by default and it uses the [OUDS Web font stack]([[docsref:/foundation/reboot#font-stack]]).
Please note that:
- You have to use the appropriate HTML tag to convey the right semantic meaning, generally a `
`.
- The `.lead`, `
` and `.small` or `` texts are equivalent to the [font size text utilities]([[docsref:/utilities/text#font-size]]) `.fs-bl`, `.fs-bm`, and `.fs-bs`.
- You can use other font weights as needed through our [font weight utilities]([[docsref:/utilities/text#font-weight]]).
- If you want to get rid of the `max-width`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
+- If you want to get rid of the `margin-bottom` applied on `
` elements, please use our `.mb-none` [spacing utility]([[docsref:/utilities/spacing#margin-and-padding]]).
- You can easily add an icon with your body texts using our [body text icon size utilities]([[docsref:/utilities/icons-sizing#body]]).
@@ -462,7 +464,7 @@ Label is a UI element that styles typography for compact interface components su
The label is non-responsive and maintains a fixed size across all breakpoints. This ensures visual consistency and predictable behavior within space-constrained UI elements. Labels are preferred when content is displayed within small components.
-Labels have four size levels: xlarge, large, medium, and small. Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`.
+Labels have four size levels: xlarge, large, medium, and small. Each one sets `font-size`, `line-height`, `letter-spacing`, and `max-width`. Label uses the [OUDS Web font stack]([[docsref:/foundation/reboot#font-stack]]).
Please note that:
- You have to use the appropriate HTML tag to convey the right semantic meaning, generally a `
`.
@@ -557,10 +559,6 @@ Code element is a UI element that styles typography for technical content like c
The code employs a monospace typeface to maintain character alignment and enhance the readability of structured content. Offered in one size, it ensures a uniform presentation of technical information across the product. Its application should be restricted to content that necessitates a precise code-like representation.
-
-Use the `` element to mark short code snippets within text. The `` element uses the monospace code font stack and is styled to stand out from surrounding text.
+Use the `` element to mark short code snippets within text. The `` element uses the [monospace code font stack]([[docsref:/foundation/reboot#font-stack]]) and is styled to stand out from surrounding text.
<section> should be wrapped as inline.`} />
-
-
-
diff --git a/site/src/content/docs/foundation/reboot.mdx b/site/src/content/docs/foundation/reboot.mdx
index 00b01dfff8..82699212b9 100644
--- a/site/src/content/docs/foundation/reboot.mdx
+++ b/site/src/content/docs/foundation/reboot.mdx
@@ -18,7 +18,7 @@ import { getTokenValue } from '@libs/sass-variables'
Reboot is a shared SCSS file imported after the root styles and before typography, layout, and component styles in each [theme]([[docsref:/foundation/themes]]) stylesheet. This order sets the basic styles first, later styles can then build on or override them.
-Reboot builds on Normalize and sets default styles using element selectors. For example, Reboot resets the default styling of lists, while the [Bullet list component]([[docsref:/components/bullet-list]]) offers more stylised lists using classes such as `.bullet-list` or `.bullet-list-default-color`.
+Reboot builds on Normalize and sets default styles using element selectors. For example, reboot resets the default styling of lists, while the [Bullet list component]([[docsref:/components/bullet-list]]) offers more stylized lists using classes such as `.bullet-list` or `.bullet-list-default-color`.
Reboot follows these guidelines:
@@ -30,7 +30,7 @@ Reboot follows these guidelines:
### CSS variables
-Every OUDS Web (like `ouds-web.css`, `ouds-web-reboot.css`, or `ouds-web-grid.css`) CSS bundle includes `_root.scss`, which defines root-level [CSS variables]([[docsref:/foundation/css-variables]]) (also called custom properties). These variables are generated from Sass variables, so you can customize styles with Sass at build time or with CSS variables at runtime.
+Every OUDS Web CSS bundle (like `ouds-web.css`, `ouds-web-reboot.css`, or `ouds-web-grid.css`) includes `_root.scss`, which defines root-level [CSS variables]([[docsref:/foundation/css-variables]]) (also called custom properties). These variables are generated from Sass variables.
For example, consider these `:root` CSS variables for common `:root` styles:
@@ -57,22 +57,25 @@ Reboot sets consistent defaults for the page:
### Font stack
OUDS Web loads custom brand fonts from a CDN, to ensure optimum text rendering on every device and OS, and to benefit from the browser's cache.
-If a custom font is unavailable, OUDS Web uses a system font stack for clear text rendering across devices. The stack is defined here:
+If a custom font is unavailable, OUDS Web uses a system font stack for clear text rendering across devices. This stack is applied globally and defined here:
-This stack is applied globally. To change it, update `$font-family-base` and rebuild OUDS Web.
+
Font-face rules are generated in `_root.scss` from the `$custom-font-cdn-urls` map. Update the URLs if you host the fonts elsewhere.
-Code elements use the monospace stack below. To change it, update `$font-family-code` and rebuild OUDS Web.
+Code elements use the monospace stack below:
+## Headings
+
+All heading elements—`
`—`
` have their `margin-top` removed, margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} set, and `line-height` tightened. While headings inherit their `color` by default, you can also override it via optional CSS variable, `--bs-heading-color`. `
`—`
` elements are associated to [heading typography]([[docsref:/components/typography#heading]]). If you want to get rid of the `margin-bottom`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
## Paragraphs
-All `
` elements have their `margin-top` removed and margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} set for easy spacing. If you want to get rid of the `margin-bottom`, please make sure to use our `.mb-none` [spacing utilities]([[docsref:/utilities/spacing]]).
+All `
` elements have their `margin-top` removed and margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} set for easy spacing. `
` uses [body medium typography]([[docsref:/components/typography#body]]). If you want to get rid of the `margin-bottom`, please use to use our `.mw-none` [width utility]([[docsref:/utilities/sizing]]).
This is an example paragraph which is long enough so it’s easy to see and compare the max-width in action and compare it to the one below.
This is an example paragraph which is long enough so it’s easy to see and compare the max-width in action and compare it to the one above.
@@ -156,37 +159,6 @@ For simpler styling, clear hierarchy, and better spacing, description lists have
Definition for this other term.
`} />
-
-### Description list alignment
-{/* TODO See if we keep it: its just some tips to use our utilities, I don't think this is very useful here */}
-
-Align terms and descriptions horizontally by using our grid system’s predefined classes (or semantic mixins). For longer terms, you can optionally add a `.text-truncate` class to truncate the text with an ellipsis.
-
-
-
Description lists
-
A description list is perfect for defining terms.
-
-
Term
-
-
Definition for the term.
-
And some more placeholder definition text.
-
-
-
Another term
-
This definition is short, so no extra paragraphs or anything.
-
-
Truncated term is truncated
-
This can be useful when space is tight. Adds an ellipsis at the end.
-
-
Nesting
-
-
-
Nested definition list
-
I heard you like definition lists. Let me put a definition list inside your definition list.
-
-
- `} />
-
## Inline text elements
Styling for common inline HTML5 elements.
@@ -203,7 +175,7 @@ Styling for common inline HTML5 elements.
Beware that those tags should be used for semantic purpose:
- `` represents text which is marked or highlighted for reference or notation purposes.
-- `` represents side-comments and small print, like copyright and legal text. It uses [Regular text](#regular-texts) body small.
+- `` represents side-comments and small print, like copyright and legal text. It uses [body small typography]([[docsref:/components/typography#body]]).
- `` represents element that are no longer relevant or no longer accurate.
- `` represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation.
@@ -218,6 +190,8 @@ While not shown above, feel free to use `` and `` in HTML5. `` is meant
## Code
+`` element uses [code typography]([[docsref:/components/typography#code]]).
+
### Inline code
Wrap inline snippets of code with ``. Be sure to escape HTML angle brackets.
@@ -232,6 +206,25 @@ Use `
`s for multiple lines of code. Once again, be sure to escape any angle
<p>And another line of sample text here...</p>
`} />
+### Variables
+
+For indicating variables use the `` tag.
+
+y = mx + b`} />
+
+### User input
+
+Use the `` to indicate input that is typically entered via keyboard.
+
+cd followed by the name of the directory.
+ To edit settings, press Ctrl + ,`} />
+
+### Sample output
+
+For indicating sample output from a program use the `` tag.
+
+This text is meant to be treated as sample output from a computer program.`} />
+
## Tables
Tables are slightly adjusted to style `
`s, collapse borders, and ensure consistent `text-align` throughout. Additional changes for borders, padding, and more come with [the `.table` class]([[docsref:/components/table]]).
@@ -413,25 +406,6 @@ Reboot includes an enhancement for `role="button"` to change the default cursor
Non-button element button`} />
-## Variables
-
-For indicating variables use the `` tag.
-
-y = mx + b`} />
-
-## User input
-
-Use the `` to indicate input that is typically entered via keyboard.
-
-cd followed by the name of the directory.
- To edit settings, press Ctrl + ,`} />
-
-## Sample output
-
-For indicating sample output from a program use the `` tag.
-
-This text is meant to be treated as sample output from a computer program.`} />
-
## Address
The `` element is updated to reset the browser default `font-style` from `italic` to `normal`. `line-height` is also now inherited, and margin-bottom: {getTokenValue('$ouds-space-fixed-medium')} has been added. ``s are for presenting contact information for the nearest ancestor (or an entire body of work). Preserve formatting by ending lines with ` `.
@@ -458,13 +432,13 @@ For quoting blocks of content from another source within your document, wrap ``. When providing attribution, wrap your `
` in a `` and use a `` or a block level element (e.g., `
`) with the `.blockquote-footer` class. Be sure to wrap the name of the source work in `` as well. It uses [Regular text](#regular-texts) body small.
+The HTML spec requires that blockquote attribution be placed outside the `
`. When providing attribution, wrap your `
` in a `` and use a ``. Be sure to wrap the name of the source work in `` as well. `` after `
` uses [body small typography]([[docsref:/components/typography#body]]).
A well-known quote, contained in a blockquote element.
-
+
Someone famous in Source Title
`} />
@@ -472,13 +446,13 @@ The HTML spec requires that blockquote attribution be placed outside the `
A well-known quote, contained in a blockquote element.
-
+
Someone famous in Source Title
`} />
@@ -487,7 +461,7 @@ Use text utilities as needed to change the alignment of your blockquote.
A well-known quote, contained in a blockquote element.
-
+
Someone famous in Source Title
`} />
diff --git a/site/src/content/docs/getting-started/migration-from-boosted.mdx b/site/src/content/docs/getting-started/migration-from-boosted.mdx
index b37ea5f25e..8b363ca2b3 100644
--- a/site/src/content/docs/getting-started/migration-from-boosted.mdx
+++ b/site/src/content/docs/getting-started/migration-from-boosted.mdx
@@ -76,7 +76,7 @@ Read more about the [font stack]([[docsref:/foundation/reboot#font-stack]]) for
- Breaking Abbreviation class `.initialism` has been removed.
-- Warning `.blockquote` class has been deprecated, you can use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
+- Warning `.blockquote` and `.blockquote-footer` class have been deprecated, you can use `
` and `` instead. Read more in our [reboot page, blockquote section]([[docsref:/foundation/reboot#blockquote]]).
- Warning Default spacing values now use `px`s instead of `em`s for fixed component spacing, to keep as much space as possible for meaningful content on zoom.
@@ -2349,9 +2349,11 @@ See [our new Text Area page]([[docsref:/components/text-area]]) for more informa
Warning Dropped Sass variables:
$blockquote-font-size
+
$blockquote-footer-color
$blockquote-footer-font-size
$blockquote-line-height
$blockquote-letter-spacing
+
$blockquote-margin-y
$boosted-prefix
$boosted-variable-prefix
$border-color-subtle
diff --git a/site/src/content/docs/getting-started/update-guide.mdx b/site/src/content/docs/getting-started/update-guide.mdx
index 35f1762c30..98537abebb 100644
--- a/site/src/content/docs/getting-started/update-guide.mdx
+++ b/site/src/content/docs/getting-started/update-guide.mdx
@@ -85,7 +85,7 @@ toc: true
### Reboot
-- Warning `.blockquote` class has been deprecated, you can use `
` instead. Read more in our [reboot page]([[docsref:/foundation/reboot]]).
+- Warning `.blockquote` and `.blockquote-footer` class have been deprecated, you can use `
` and `` instead. Read more in our [reboot page, blockquote section]([[docsref:/foundation/reboot#blockquote]]).
### Dual mode
diff --git a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
index 9c0bd4b98d..99dbb73661 100644
--- a/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
+++ b/skills/using-ouds-web-version-major-minor/references/foundation/reboot.md
@@ -81,7 +81,7 @@ Styled via `border-top`, inherits `border-color` via `color`. Customize with bor
## Blockquotes
-Style applies directly to the bare `
` element — **there is no `.blockquote` class** (removed; do not add it). Uses [body large text](../components/typography.md#body).
+Style applies directly to the bare `
` element — the `.blockquote` class is deprecated (since v1.6), do not use it in new code. Uses [body large text](../components/typography.md#body).
```html
@@ -91,20 +91,20 @@ Style applies directly to the bare `
` element — **there is no `.bl
### Naming a source
-The HTML spec requires attribution to be placed outside the `
`. Wrap the `
` in a `` and add a `` (or a block-level element like `
`) with the `.blockquote-footer` class **immediately after** the `
` — it only renders its styling (dash prefix, body small text) when it is the adjacent sibling of a `
` (CSS selector `blockquote + .blockquote-footer`). Wrap the source name in ``.
+The HTML spec requires attribution to be placed outside the `
`. Wrap the `
` in a `` and add a plain `` (no class) **immediately after** the `
` — it gets its styling (dash prefix, body small text) from the adjacent-sibling selector `blockquote + figcaption`. Wrap the source name in ``.
```html
A well-known quote, contained in a blockquote element.
-
+
Someone famous in Source Title
```
-> **Breaking change (v1.6.0):** previously `.blockquote` and `.blockquote-footer` worked as standalone classes. Now the plain `
` element carries the style, and `.blockquote-footer` requires the adjacent-sibling structure above to be styled.
+> **Deprecation (v1.6.0):** `.blockquote` and `.blockquote-footer` are deprecated (they still work for now). Use the plain `
` element, followed by `` for the attribution.
## Lists
diff --git a/skills/using-ouds-web-version-major-minor/references/getting-started/update-guide.md b/skills/using-ouds-web-version-major-minor/references/getting-started/update-guide.md
index ba9f15519e..99b6eb5e3b 100644
--- a/skills/using-ouds-web-version-major-minor/references/getting-started/update-guide.md
+++ b/skills/using-ouds-web-version-major-minor/references/getting-started/update-guide.md
@@ -7,7 +7,7 @@
### Breaking changes
- **Alerts**: action links placed inside `.alert-container`, after `.alert-text-container`, must use the compact link variant: `.link.link-compact`. Action links placed inside `.alert-action-container`, beside the close button, continue to use the regular `.link`.
-- **Blockquotes**: `.blockquote` class deprecated — directly use the `
` element. `.blockquote-footer` only renders its styling when it is the adjacent sibling of a `
` (`blockquote + .blockquote-footer`), so keep the `` wrapper with `` immediately after the `
`.
+- **Blockquotes**: `.blockquote` and `.blockquote-footer` classes deprecated (still working) - use the `
or .h2)>)}
{level === 'heading-medium' && (<>Heading medium ({'
'}
or .h3)>)}
{level === 'heading-small' && (<>Heading small ({'
'}
or .h4)>)}
- {level === 'body-large' && (<>Body large ({'
'}
or .h5)>)}
- {level === 'body-medium' && (<>Body medium ({'
'}
or .h6)>)}
+ {level === 'body-large' && (<>Heading 5 ({'
'}
or .h5)>)}
+ {level === 'body-medium' && (<>Heading 6 ({'
'}
or .h6)>)}
{
screenSize.map((size) => (
@@ -291,8 +291,8 @@ Here are the associated `font-size`s depending on the breakpoints:
{level === 'heading-large' && (<>Heading large ({'
'}
or .h2)>)}
{level === 'heading-medium' && (<>Heading medium ({'
'}
or .h3)>)}
{level === 'heading-small' && (<>Heading small ({'
'}
or .h4)>)}
- {level === 'body-large' && (<>Body large ({'
'}
or .h5)>)}
- {level === 'body-medium' && (<>Body medium ({'
'}
or .h6)>)}
+ {level === 'body-large' && (<>Heading 5 ({'
'}
or .h5)>)}
+ {level === 'body-medium' && (<>Heading 6 ({'
'}
or .h6)>)}
{
screenSize.map((size) => (
@@ -314,6 +314,10 @@ Here are the associated `font-size`s depending on the breakpoints:
+
+ Heading 5 and heading 6 references do not exist in the brand guidelines; they are included here for consistency and continuity of HTML pages.
+
+
h1. OUDS Web heading