Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .bundlewatch.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"files": [
{
"path": "./packages/orange/dist/css/ouds-web-bootstrap.css",
"maxSize": "83.0 kB"
"maxSize": "83.25 kB"
},
{
"path": "./packages/orange/dist/css/ouds-web-bootstrap.min.css",
"maxSize": "79.5 kB"
"maxSize": "79.75 kB"
},
{
"path": "./packages/orange/dist/css/ouds-web-grid.css",
Expand Down Expand Up @@ -38,7 +38,7 @@
},
{
"path": "./packages/orange/dist/css/ouds-web.min.css",
"maxSize": "62.5 kB"
"maxSize": "62.75 kB"
},
{
"path": "./dist/js/ouds-web.bundle.js",
Expand Down
4 changes: 4 additions & 0 deletions scss/_maps.scss
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ $ouds-elevations: (

// scss-docs-start ouds-maps-font
$ouds-font-sizes: (
lxl: "/label-xlarge",
ll: "/label-large",
lm: "/label-medium",
ls: "/label-small",
cm: "/code-medium",
bs: "/body-small",
bm: "/body-medium",
Expand Down
8 changes: 5 additions & 3 deletions scss/mixins/_fonts.scss
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// scss-docs-start ouds-mixin-font
// $font-size-ref can be 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"

@mixin get-font-size($font-size-ref: "display-large") {
@if str-slice($font-size-ref, 1, 5) != "label" and str-slice($font-size-ref, 1, 4) != "code" {
max-width: var(--#{$prefix}font-max-width-#{$font-size-ref});
@mixin get-font-size($font-size-ref: "display-large", $label-with-max-width: false) {
@if str-slice($font-size-ref, 1, 4) != "code" {
@if str-slice($font-size-ref, 1, 5) != "label" or $label-with-max-width == true {
max-width: var(--#{$prefix}font-max-width-#{$font-size-ref});
}
}
font-size: var(--#{$prefix}font-size-#{$font-size-ref});
line-height: var(--#{$prefix}font-line-height-#{$font-size-ref});
Expand Down
2 changes: 1 addition & 1 deletion scss/mixins/_utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
// OUDS mod
@if type-of($value) == "string" and str-slice($value, 1, 1) == "/" {
.#{$bkpt-prefix + $property-class + $infix + $property-class-modifier} {
@include get-font-size(#{str-slice($value, 2)});
@include get-font-size(#{str-slice($value, 2)}, true);
}
// End mod
} @else {
Expand Down
72 changes: 72 additions & 0 deletions scss/tests/customize/_ouds-web-bootstrap-utilities.test.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3510,6 +3510,42 @@ $utilities: ();

/* rtl:end:remove */

.fs-lxl {
max-width: var(--bs-font-max-width-label-xlarge);
font-size: var(--bs-font-size-label-xlarge);
Comment thread
MaxLardenois marked this conversation as resolved.
line-height: var(--bs-font-line-height-label-xlarge);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-xlarge);
}

.fs-ll {
max-width: var(--bs-font-max-width-label-large);
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);
}

.fs-lm {
max-width: var(--bs-font-max-width-label-medium);
font-size: var(--bs-font-size-label-medium);
line-height: var(--bs-font-line-height-label-medium);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-medium);
}

.fs-ls {
max-width: var(--bs-font-max-width-label-small);
font-size: var(--bs-font-size-label-small);
line-height: var(--bs-font-line-height-label-small);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-small);
}

.fs-cm {
font-size: var(--bs-font-size-code-medium);
line-height: var(--bs-font-line-height-code-medium);
Expand Down Expand Up @@ -15434,6 +15470,42 @@ $utilities: ();

/* rtl:end:remove */

.fs-lxl {
max-width: var(--bs-font-max-width-label-xlarge);
font-size: var(--bs-font-size-label-xlarge);
line-height: var(--bs-font-line-height-label-xlarge);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-xlarge);
}

.fs-ll {
max-width: var(--bs-font-max-width-label-large);
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);
}

.fs-lm {
max-width: var(--bs-font-max-width-label-medium);
font-size: var(--bs-font-size-label-medium);
line-height: var(--bs-font-line-height-label-medium);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-medium);
}

.fs-ls {
max-width: var(--bs-font-max-width-label-small);
font-size: var(--bs-font-size-label-small);
line-height: var(--bs-font-line-height-label-small);

/* rtl:remove */
letter-spacing: var(--bs-font-letter-spacing-label-small);
}

.fs-cm {
font-size: var(--bs-font-size-code-medium);
line-height: var(--bs-font-line-height-code-medium);
Expand Down
48 changes: 24 additions & 24 deletions site/src/content/docs/foundation/typography.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ export const textLevel = [
"body-small"
]

export const labelLevel = [
"label-xlarge",
"label-large",
"label-medium",
"label-small"
]

export const screenSize = [
"mobile",
"tablet",
Expand Down Expand Up @@ -288,17 +295,24 @@ Since only [headings](#headings), [display headings](#display-headings) and `str
</thead>
<tbody>
{
textLevel.map((level) => (
[ ...textLevel, ...labelLevel].map((level) => (
<tr>
<td>
{level === 'body-large' && (<>Body large (<code>{'.lead'}</code>)</>)}
{level === 'body-medium' && (<>Body medium (default <code>{'<p>'}</code>)</>)}
{level === 'body-small' && (<>Body small (<code>{'.small'}</code> or <code>{'<small>'}</code>)</>)}
{level === 'label-xlarge' && (<>Label xlarge (<code>{'.fs-lxl'}</code>)</>)}
{level === 'label-large' && (<>Label large (<code>{'.fs-ll'}</code>)</>)}
{level === 'label-medium' && (<>Label medium (<code>{'.fs-lm'}</code>)</>)}
{level === 'label-small' && (<>Label small (<code>{'.fs-ls'}</code>)</>)}
</td>
{
screenSize.map((size) => (
<td>
<code>{(getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2)) / 16}rem</code> ({getTokenValue(`$ouds-font-size-${level}-${size}`)})
{!level.includes('label-')
&& (<><code>{(getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2)) / 16}rem</code> ({getTokenValue(`$ouds-font-size-${level}-${size}`)})</>)}
{level.includes('label-')
&& (<><code>{(getTokenValue(`$ouds-font-size-${level}`).slice(0, -2)) / 16}rem</code> ({getTokenValue(`$ouds-font-size-${level}`)})</>)}
</td>
))
}
Expand All @@ -323,20 +337,24 @@ Since only [headings](#headings), [display headings](#display-headings) and `str
</thead>
<tbody>
{
textLevel.map((level) => (
[ ...textLevel, ...labelLevel].map((level) => (
<tr>
<td>
{level === 'body-large' && (<>Body large (<code>{'.lead'}</code>)</>)}
{level === 'body-medium' && (<>Body medium (default <code>{'<p>'}</code>)</>)}
{level === 'body-small' && (<>Body small (<code>{'.small'}</code> or <code>{'<small>'}</code>)</>)}
{level === 'label-xlarge' && (<>Label xlarge (<code>{'.fs-lxl'}</code>)</>)}
{level === 'label-large' && (<>Label large (<code>{'.fs-ll'}</code>)</>)}
{level === 'label-medium' && (<>Label medium (<code>{'.fs-lm'}</code>)</>)}
{level === 'label-small' && (<>Label small (<code>{'.fs-ls'}</code>)</>)}
</td>
{
screenSize.map((size) => (
<td>
<ul class="mb-none ps-medium">
<li><code class="text-default">font-size</code>: <b>{(getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2)) / 16}rem</b></li>
<li><code>line-height</code>: {Math.round(((getTokenValue(`$ouds-font-line-height-${level}-${size}`).slice(0, -2)) / (getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2))) * 10000) / 10000}</li>
<li><code>letter-spacing</code>: {(getTokenValue(`$ouds-font-letter-spacing-${level}-${size}`).slice(0, -2)) / 16}rem</li>
<li><code class="text-default">font-size</code>: <b>{(getTokenValue(`$ouds-font-size-${level}${!level.includes('label-') ? '-' + size : ''}`).slice(0, -2)) / 16}rem</b></li>
<li><code>line-height</code>: {Math.round(((getTokenValue(`$ouds-font-line-height-${level}${!level.includes('label-') ? '-' + size : ''}`).slice(0, -2)) / (getTokenValue(`$ouds-font-size-${level}${!level.includes('label-') ? '-' + size : ''}`).slice(0, -2))) * 10000) / 10000}</li>
<li><code>letter-spacing</code>: {(getTokenValue(`$ouds-font-letter-spacing-${level}${!level.includes('label-') ? '-' + size : ''}`).slice(0, -2)) / 16}rem</li>
<li><code>max-width</code>: {(getTokenValue(`$ouds-size-max-width-${level}-${size}`).slice(0, -2)) / 16}rem</li>
</ul>
</td>
Expand Down Expand Up @@ -487,21 +505,3 @@ Align terms and descriptions horizontally by using our grid system’s predefine
</dl>
</dd>
</dl>`} />

## Text style for custom components

OUDS Web introduces a specific text style for components named `label` with 4 levels: `small`, `medium`, `large` and `xlarge`, it sets `font-size`, `line-height` and `letter-spacing` css properties. We use this style for many components included in OUDS Web, if you need to develop a custom component for your project you can use this font by calling the Scss mixin `get-font-size()`. Following is a call example for this mixin.

<Example showPreview={false} lang="scss" code={`.my-custom-component {
@include get-font-size("label-medium");
}`} />

This will result in the following CSS.

<Example showPreview={false} lang="css" code={`.my-custom-component {
font-size: var(--bs-font-size-label-medium);
line-height: var(--bs-font-line-height-label-medium);

// only for ltr
letter-spacing: var(--bs-font-letter-spacing-label-medium);
}`} />
4 changes: 4 additions & 0 deletions site/src/content/docs/getting-started/migration.mdx
Comment thread
louismaximepiton marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ toc: true

- <span class="tag tag-small tag-warning"><span class="tag-status-icon"></span>Warning</span> `.shadow-default` has been deprecated in favor of `.shadow-elevated`. It will be removed in v1.5.0. Read more in our [shadow page]([[docsref:/utilities/shadow]]).

#### Text

<span class="tag tag-small tag-positive"><span class="tag-status-icon"></span>New</span> 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]]).

### CSS and Sass variables

- <details class="mb-small">
Expand Down
37 changes: 31 additions & 6 deletions site/src/content/docs/utilities/text.mdx
Comment thread
MaxLardenois marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ export const fontSize = [
"body-large",
"body-medium",
"body-small",
"code-medium"
"code-medium",
"label-xlarge",
"label-large",
"label-medium",
"label-small"
]

export const screenSize = [
Expand Down Expand Up @@ -140,13 +144,17 @@ These classes change the `font-size` but also the `line-height`, the `letter-spa
{level === 'body-medium' && (<>Body medium (<code>{'.fs-bm'}</code>)</>)}
{level === 'body-small' && (<>Body small (<code>{'.fs-bs'}</code>)</>)}
{level === 'code-medium' && (<>Code medium (<code>{'.fs-cm'}</code>)</>)}
{level === 'label-xlarge' && (<>Label xlarge (<code>{'.fs-lxl'}</code>)</>)}
{level === 'label-large' && (<>Label large (<code>{'.fs-ll'}</code>)</>)}
{level === 'label-medium' && (<>Label medium (<code>{'.fs-lm'}</code>)</>)}
{level === 'label-small' && (<>Label small (<code>{'.fs-ls'}</code>)</>)}
</td>
{
screenSize.map((size) => (
<td>
{level !== 'code-medium'
{(level !== 'code-medium' && !level.includes('label-'))
&& (<><code>{(getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2)) / 16}rem</code> ({getTokenValue(`$ouds-font-size-${level}-${size}`)})</>)}
{level === 'code-medium'
{(level === 'code-medium' || level.includes('label-'))
&& (<><code>{(getTokenValue(`$ouds-font-size-${level}`).slice(0, -2)) / 16}rem</code> ({getTokenValue(`$ouds-font-size-${level}`)})</>)}
</td>
))
Expand Down Expand Up @@ -188,11 +196,15 @@ These classes change the `font-size` but also the `line-height`, the `letter-spa
{level === 'body-medium' && (<>Body medium (<code>{'.fs-bm'}</code>)</>)}
{level === 'body-small' && (<>Body small (<code>{'.fs-bs'}</code>)</>)}
{level === 'code-medium' && (<>Code medium (<code>{'.fs-cm'}</code>)</>)}
{level === 'label-xlarge' && (<>Label xlarge (<code>{'.fs-lxl'}</code>)</>)}
{level === 'label-large' && (<>Label large (<code>{'.fs-ll'}</code>)</>)}
{level === 'label-medium' && (<>Label medium (<code>{'.fs-lm'}</code>)</>)}
{level === 'label-small' && (<>Label small (<code>{'.fs-ls'}</code>)</>)}
</td>
{
screenSize.map((size) => (
<td>
{level !== 'code-medium'
{(level !== 'code-medium' && !level.includes('label-'))
&& (
<ul class="mb-none ps-medium">
<li><code class="text-default">font-size</code>: <b>{(getTokenValue(`$ouds-font-size-${level}-${size}`).slice(0, -2)) / 16}rem</b></li>
Expand All @@ -201,7 +213,16 @@ These classes change the `font-size` but also the `line-height`, the `letter-spa
<li><code>max-width</code>: {(getTokenValue(`$ouds-size-max-width-${level}-${size}`).slice(0, -2)) / 16}rem</li>
</ul>
)}
{level === 'code-medium'
{(level.includes('label-'))
&& (
<ul class="mb-none ps-medium">
<li><code class="text-default">font-size</code>: <b>{(getTokenValue(`$ouds-font-size-${level}`).slice(0, -2)) / 16}rem</b></li>
<li><code>line-height</code>: {Math.round(((getTokenValue(`$ouds-font-line-height-${level}`).slice(0, -2)) / (getTokenValue(`$ouds-font-size-${level}`).slice(0, -2))) * 10000) / 10000}</li>
<li><code>letter-spacing</code>: {(getTokenValue(`$ouds-font-letter-spacing-${level}`).slice(0, -2)) / 16}rem</li>
<li><code>max-width</code>: {(getTokenValue(`$ouds-size-max-width-${level}-${size}`).slice(0, -2)) / 16}rem</li>
</ul>
)}
{(level === 'code-medium')
&& (
<ul class="mb-none ps-medium">
<li><code class="text-default">font-size</code>: <b>{(getTokenValue(`$ouds-font-size-${level}`).slice(0, -2)) / 16}rem</b></li>
Expand Down Expand Up @@ -230,7 +251,11 @@ These classes change the `font-size` but also the `line-height`, the `letter-spa
<p class="fs-bl">.fs-bl text</p>
<p class="fs-bm">.fs-bm text</p>
<p class="fs-bs">.fs-bs text</p>
<p class="fs-cm font-monospace">.fs-cm.font-monospace text</p>`} />
<p class="fs-cm font-monospace">.fs-cm.font-monospace text</p>
<p class="fs-lxl">.fs-lxl text</p>
<p class="fs-ll">.fs-ll text</p>
<p class="fs-lm">.fs-lm text</p>
<p class="fs-ls">.fs-ls text</p>`} />

Customize your available `font-size`s by modifying the `$ouds-font-sizes` Sass map.

Expand Down
Loading