Skip to content
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
d286def
doc: Add Brands section to documentation
hannahiss Apr 30, 2026
a39dd99
Use astro component
hannahiss Apr 30, 2026
12e36ed
commit tmp
hannahiss May 5, 2026
7c9a8e8
Merge branch 'refs/heads/ouds/main' into ouds/main-brands-doc
hannahiss May 5, 2026
6153eae
Update brands documentation to reflect theme usage and improve clarity
hannahiss May 6, 2026
e1600e4
Merge branch 'refs/heads/ouds/main' into ouds/main-brands-doc
hannahiss May 6, 2026
948d558
Update brands documentation to reflect theme usage and improve clarity
hannahiss May 6, 2026
13016f1
.
hannahiss May 6, 2026
cd8d22c
badge large + svg location
hannahiss May 6, 2026
19d74c1
test style isolation
hannahiss May 6, 2026
bb71632
test styles and sprite loading isolation
hannahiss May 6, 2026
bc4d47e
Test for css
louismaximepiton Jul 1, 2026
16f6237
Change root selector
louismaximepiton Jul 1, 2026
4a740a7
Better ci + better root selector
louismaximepiton Jul 1, 2026
7c282e9
.
louismaximepiton Jul 1, 2026
d46997a
Merge branch 'ouds/main' into ouds/main-brands-doc
louismaximepiton Jul 1, 2026
31aa1f1
After Jerome and Cyriaque reviews
hannahiss Jul 3, 2026
d5d2bc6
ids
hannahiss Jul 3, 2026
23a1a33
layout arrangement
hannahiss Jul 3, 2026
80619eb
Merge branch 'ouds/main' into ouds/main-brands-doc
hannahiss Jul 3, 2026
8879b3d
Right logos and formatted logos
hannahiss Jul 3, 2026
b8b8b78
Delete brand page
hannahiss Jul 3, 2026
f2bfb10
Right logos and formatted logos
hannahiss Jul 3, 2026
26dbeb0
fix(review)
louismaximepiton Jul 6, 2026
d2c484e
Update Notice with newly added images
louismaximepiton Jul 6, 2026
6843944
fix review
louismaximepiton Jul 6, 2026
c06b32f
Some design
louismaximepiton Jul 6, 2026
f51a0cf
Dark mode working
louismaximepiton Jul 7, 2026
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
3 changes: 3 additions & 0 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@ packages/orange/orange-compact-logo.png
packages/sosh/sosh-logo.png
packages/**/scss/tokens/_composite.scss
site/static/[brand]/docs/[version]/assets/brand/orange-logo.svg
site/static/[brand]/docs/[version]/assets/brand/orange-logo-formatted.svg
site/static/[brand]/docs/[version]/assets/brand/orange-compact-logo.svg
site/static/[brand]/docs/[version]/assets/brand/orange-compact-logo-formatted.svg
site/static/[brand]/docs/[version]/assets/brand/sosh-logo.svg
site/static/[brand]/docs/[version]/assets/brand/sosh-logo-formatted.svg
site/static/[brand]/docs/[version]/assets/img/navbar-contact.png
site/static/[brand]/docs/[version]/assets/img/thumbnail.png
site/static/**/docs/[version]/assets/brand/social.png
Expand Down
9 changes: 8 additions & 1 deletion packages/orange-compact/orange-compact-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 8 additions & 1 deletion packages/orange/orange-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packages/sosh/sosh-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions site/data/sidebar-foundation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- title: Tokens
- title: Colors
- title: Color modes
- title: Themes
- title: CSS variables
- title: Reboot
- title: Typography
Expand Down
4 changes: 2 additions & 2 deletions site/src/components/header/Navigation.astro
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,12 @@ const { addedIn, layout, title } = Astro.props
aria-expanded="false"
data-bs-toggle="dropdown"
data-bs-display="static"
aria-label={`Toggle brand (${getConfig().brand})`}
aria-label={`Toggle theme (${getConfig().brand})`}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this vocabulary change but I think we should do it everywhere (code included). To discuss in a v2? added in the Loop file

>
<svg class="ms-auto" aria-hidden="true">
<use href={getVersionedDocsPath('/assets/img/ouds-web-sprite.svg#theme')}></use>
</svg>
<span class="lg:d-none ms-small" id="bd-brand-text">Brand</span>
<span class="lg:d-none ms-small" id="bd-brand-text">Theme</span>
</button>
<ul class=`dropdown-menu dropdown-menu-end mb-small` aria-labelledby="bd-brand-text">
<li>
Expand Down
13 changes: 8 additions & 5 deletions site/src/components/shortcodes/SvgDocs.astro
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
import fs from 'node:fs'
import Code from '@shortcodes/Code.astro'
import { getConfig } from '@libs/config'
import { getVersionedDocsPath } from '@libs/path'

/**
Expand All @@ -10,7 +9,7 @@ import { getVersionedDocsPath } from '@libs/path'
interface Props {
/**
* File path to the SVG file without file extension.
* @default "brand-logo"
* @default "${theme}-logo"
*/
file?: string

Expand All @@ -19,15 +18,19 @@ interface Props {
* @default true
*/
downloadable?: boolean
Comment thread
louismaximepiton marked this conversation as resolved.

/**
Comment thread
louismaximepiton marked this conversation as resolved.
* Defines label to complete 'Copy SVG to clipboard' button aria-label.
*/
buttonLabel?: string

theme?: 'orange' | 'orange-compact' | 'sosh'
}
const { theme = 'orange' } = Astro.props

const { file = `${getConfig().brand}-logo`, downloadable = true, buttonLabel } = Astro.props
const { file = `${theme}-logo`, downloadable = true, buttonLabel } = Astro.props

const filePath = `site/${getConfig().brand}/static/docs/[version]/assets/brand/${file}`
const filePath = `site/static/[brand]/docs/[version]/assets/brand/${file}`
const svgFormattedPath = `${filePath}-formatted.svg`
const svgPath = `${filePath}.svg`

Expand All @@ -37,7 +40,7 @@ const size = fs.statSync(svgPath).size
const clipboardLabel = buttonLabel
? `Copy ${buttonLabel} SVG to clipboard`
: file
? `Copy ${file}.svg file to clipboard`
? `Copy ${file}.svg content to clipboard`
: 'Copy SVG to clipboard'
---

Expand Down
222 changes: 222 additions & 0 deletions site/src/components/shortcodes/ThemeDemo.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
---
import { getConfig } from '@libs/config.ts'
interface Props {
/**
* The theme to use for display. One of `orange`, `orange-compact`, or `sosh`.
* @default 'orange'
*/
theme?: 'orange' | 'orange-compact' | 'sosh'
}
const { theme = 'orange' } = Astro.props
---

<link
rel="preload"
href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg`}
as="image"
type="image/svg+xml"
/>

<div data-bs-brand={theme} id={`theme-demo-${theme}`} class="p-medium border border-default">
<div class="row mb-scaled-medium">
<div class="col-12">
<div class="alert alert-message alert-positive mb-medium">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't we reuse component-details.ts snippets? I fear we will forget to update this file when adding/updating components...

<div class="alert-icon"></div>
<div class="alert-container">
<div class="alert-text-container">
<p class="alert-label">Success</p>
</div>
</div>
</div>
<div class="alert alert-message alert-warning">
<div class="alert-icon"></div>
<div class="alert-container">
<div class="alert-text-container">
<p class="alert-label">Warning</p>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-scaled-medium">
<div class="col-12 d-flex justify-content-between flex-wrap gap-xsmall">
<button type="button" class="btn btn-default">Default</button>
<button type="button" class="btn btn-brand">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
Brand
</button>
<button type="button" class="btn btn-icon btn-strong">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
<span class="visually-hidden">Brand</span>
</button>
<button type="button" class="btn btn-icon btn-negative">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
<span class="visually-hidden">Brand</span>
</button>
<button type="button" class="btn btn-icon btn-minimal">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
<span class="visually-hidden">Brand</span>
</button>
Comment thread
louismaximepiton marked this conversation as resolved.
<a class="btn btn-default btn-previous" href="#">Previous</a>
<a class="btn btn-default btn-next" href="#">Next</a>
</div>
</div>
<div class="row mb-scaled-medium">
<div class="col-12 d-flex gap-scaled-medium align-items-center flex-wrap justify-content-between">
<div class="d-inline-flex gap-medium">
<p class="badge badge-positive badge-large"><span class="visually-hidden">Success</span></p>
<p class="badge badge-info badge-large"><span class="visually-hidden">Info</span></p>
<p class="badge badge-warning badge-large"><span class="visually-hidden">Warning</span></p>
<p class="badge badge-large"><span class="visually-hidden">Beware</span></p>
</div>
<div class="d-inline-flex gap-medium">
<p class="badge badge-neutral badge-count badge-large">0<span class="visually-hidden">notification</span></p>
<p class="badge badge-accent badge-count badge-large">1<span class="visually-hidden">notification</span></p>
<p class="badge badge-positive badge-large">
<span class="badge-status-icon"></span>
<span class="visually-hidden">Success</span>
</p>
<p class="badge badge-info badge-large">
<span class="badge-status-icon"></span>
<span class="visually-hidden">Info</span>
</p>
</div>
<nav aria-label="basic breadcrumb">
<ol class="breadcrumb mb-none">
<li class="breadcrumb-item"><a href="#" title="Home">Home</a></li>
<li class="breadcrumb-item"><a href="#" title="Category">Category</a></li>
<li class="breadcrumb-item active" aria-current="page"><span title="Library">Library</span></li>
</ol>
</nav>
</div>
</div>
<div class="row">
<div class="col-12 md:col-6 mb-lg-medium">
<div class="checkbox-item mb-scaled-small">
<div class="control-item-assets-container">
<input checked class="control-item-indicator" type="checkbox" value="" id={`cb-${theme}`} />
</div>
<div class="control-item-text-container">
<label class="control-item-label" for={`cb-${theme}`}>Checkbox</label>
</div>
</div>
<fieldset class="control-items-list mb-scaled-small">
<div class="d-flex flex-row gap-small w-50">
<div class="radio-button-item flex-fill">
<div class="control-item-assets-container">
<input
class="control-item-indicator"
type="radio"
value=""
id={`rb1-${theme}`}
name={`radio-${theme}`}
checked
/>
</div>
<div class="control-item-text-container">
<label class="control-item-label" for={`rb1-${theme}`}>Yes</label>
</div>
</div>
<div class="radio-button-item flex-fill">
<div class="control-item-assets-container">
<input class="control-item-indicator" type="radio" value="" id={`rb2-${theme}`} name={`radio-${theme}`} />
</div>
<div class="control-item-text-container">
<label class="control-item-label" for={`rb2-${theme}`}>No</label>
</div>
</div>
</div>
</fieldset>
<div class="switch-item mb-scaled-small">
<div class="control-item-assets-container">
<input class="control-item-indicator" type="checkbox" role="switch" value="" id={`switch-${theme}`} />
</div>
<div class="control-item-text-container">
<label class="control-item-label" for={`switch-${theme}`}>Switch with icon</label>
</div>
<div class="control-item-assets-container">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
</div>
Comment thread
louismaximepiton marked this conversation as resolved.
</div>
<div class="d-flex gap-scaled-medium">
<a class="link link-chevron" href="#">Link with chevron</a>
<a class="link icon-link" href="#">
<svg aria-hidden="true">
<use xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#heart-empty`}
></use>
</svg>
Link with icon
Comment thread
louismaximepiton marked this conversation as resolved.
</a>
</div>
</div>
<div class="col-12 md:col-6">
<ul
class="list-unstyled d-flex flex-wrap column-gap-xsmall row-gap-medium mb-scaled-medium"
aria-label="Statuses"
>
<li class="tag tag-positive"><span class="tag-status-icon"></span>Success</li>
<li class="tag tag-info"><span class="tag-status-icon"></span>Info</li>
<li class="tag tag-warning tag-muted"><span class="tag-status-icon"></span>Warning</li>
<li class="tag tag-negative tag-muted"><span class="tag-status-icon"></span>Error</li>
</ul>
<div role="group" aria-label="Filter by" class="mb-scaled-medium">
<ul class="chips-container">
<li class="chip chip-filter">
<input type="checkbox" id={`ap-${theme}`} checked />
<label class="chip-interactive" for={`ap-${theme}`}> Apple </label>
</li>
<li class="chip chip-filter">
<input type="checkbox" id={`sa-${theme}`} />
<label class="chip-interactive" for={`sa-${theme}`}> Samsung </label>
</li>
<li class="chip chip-filter">
<input type="checkbox" id={`xi-${theme}`} />
<label class="chip-interactive" for={`xi-${theme}`}> Xiaomi </label>
</li>
</ul>
</div>
<div class="text-input mb-scaled-medium">
<div class="text-input-container">
<label for={`pwd-${theme}`}>Password</label>
<input type="password" id={`pwd-${theme}`} class="text-input-field" placeholder=" " />
<button class="btn btn-minimal btn-icon" aria-pressed="false" type="button">
<svg aria-hidden="true">
<use
xlink:href={`/${theme}/docs/${getConfig().docs_version}/assets/img/ouds-web-sprite.svg#accessibility-vision`}
></use>
</svg>
<span class="visually-hidden">Show password</span>
Comment thread
louismaximepiton marked this conversation as resolved.
</button>
</div>
</div>
<div class="select-input">
<div class="select-input-container">
<label for={`sel-${theme}`}>Default select</label>
<select class="select-input-field" id={`sel-${theme}`}>
<option value="" disabled selected></option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
</div>
</div>
</div>
</div>
Loading
Loading