Skip to content

Changelog

  • πŸ› [reset] restore the legacy Bootstrap responsive grid tiers (.col-sm-* … .col-xl-*) inside .tng-legacy-apply. 6.3.1 re-applied only the base .col-1….col-12; because @layer order is resolved before specificity and media queries, that base .col-12 { max-width: 100% } (in the apply-legacy layer) outranked the clientlib’s @media … { .col-lg-3 { max-width: 25% } } and collapsed every responsive column to full width β€” a legacy dealer/map grid stacked instead of sitting side by side. apply.css now re-declares the .col-{sm,md,lg,xl}-* widths in that same layer so they override the base at each breakpoint
  • πŸ› [reset] restore the legacy Bootstrap .col-1….col-12 grid inside .tng-legacy-apply. The container/grid reset started reverting those classes (so they can’t leak onto our col-* span utilities), but the symmetric re-apply was never added β€” a legacy component using the col-* grid collapsed to unstyled columns when wrapped in .tng-legacy-apply. apply.css now re-declares the clientlib grid values so nested legacy components keep their original layout
  • ✨ [media-button] apply the Lexus copper gradient to the progress arc and the hover / active ring. The resting button keeps its flat grey ring; on Lexus the swept progress arc and the ring on hover / active both paint copper, reusing the shared --tng-color-border-gradient-* tokens the rectangular gradient borders draw from, so arc and ring resolve one colour and share one outer edge (hover recolours the ring without thickening it). The circular ring is a linear-gradient masked into an annulus β€” no background-clip: border-area β€” so it renders in every browser; contrast uses the copper-200 β†’ copper-500 stops. Also fixes the recipe’s play / pause toggle so .tng-icon honours [hidden]
  • πŸ—‚οΈ [icon] move ai-sparkle from the operations category to technology
  • ✨ [segmented-control] add a pure-CSS, zero-JS segmented control β€” a single-select group built on a native <fieldset> + same-name <input type="radio"> segments, so grouping, single-select, roving arrow-key navigation and the accessible name come from the platform (no ARIA, no JS). The selected / hover / disabled / focus looks key off :has(input:*); ships .is-sm / .is-md / .is-lg sizes, an icon-only .is-icon variant, neutral / .is-contrast schemes, and equal-width 2–5 segments. Quarantine
  • ✨ [gradient] add brand-aware gradient strokes & fills β€” paint a brand’s stroke or fill as a colour gradient instead of a flat swatch, animated restedβ†’hover. Lexus copper auto-applies to secondary / tertiary borders, the selected EV tab, and the slider EV track; the .tng-gradient-border hook and .border-secondary / .border-secondary-emphasis / .border-ev utilities opt any element in; brands with no bespoke stops get a gradient derived from their secondary accent
  • πŸ› [field] stop the button-control label floating to the top under load
  • πŸ› [typography] .tng-text-body (and siblings) no longer set a background β€” the token was never set, so it resolved to transparent and clobbered the .tng-scheme background
  • πŸ”₯ [icon] remove the duplicate Lexus ai-sparkle icon (kept elsewhere in the set)
  • ⬆️ update figma tokens (14.0.0)
  • πŸ“¦ [package] figma-tokens is build-time inlined into the CSS and moved to devDependencies, so the published styleguide is self-contained and no longer pulls @tmedxp/figma-tokens into consumers’ dependency trees
  • ✨ [container] add .tng-container-v2 β€” an opt-in full-width page frame with responsive side margins (20/40/56/80/96px at base/sm/md/lg/xl), no max-width, and the .tng-container-fullbleed helper to reach the viewport edge. Pair it with the separate .tng-grid primitive for a full-width, 12-column page layout; the default .tng-container stays the centred/capped wrapper
  • πŸ’₯ [responsiveness] realign breakpoints to the shared grid tiers β€” sm 576β†’390, lg 992β†’1024, xl 1200β†’1440, 2xl 1600β†’1920 (md unchanged); the 3xl breakpoint and its .hidden-3xl* display utilities are dropped
  • ✨ [tabs] add a tab picker semantic β€” wrap a native <input type="radio"> in a .tng-tabs-item <label> and the tab strip becomes a single-select radio group; the selected / disabled / focus looks key off :has(input:*) and the radio is visually hidden but stays focusable, so it needs no JS and no ARIA. The existing tab panel is unchanged
  • ✨ [grid] add .tng-grid β€” a fresh, self-contained 12-column grid for laying columns out inside components/cards; children place with the col-* span utilities. The is-2-up / is-3-up modifiers make it responsive (stack on mobile, snap to N-up from md/lg), and an explicit col-* on a child opts it out as a full-width feature cell. Supersedes the legacy .tng-simple-grid
  • ✨ [grid] add col-* column-span utilities β€” numeric col-1–col-12 plus named fractions (col-half, col-1-third, col-2-third, col-1-fourth, col-3-fourth) for placing children on a .tng-grid; siblings auto-flow, so spans that sum to 12 tile a row with no explicit positioning
  • ✨ [container] expose --tng-container-inline-size on the .tng-container-v2 frame (the content width β€” viewport minus margins) for descendants that need to fit the page content area, with a var(…, fallback) for when they’re used standalone
  • πŸ› [field] fix Chrome autofill β€” the input now fits the control’s border box so the autofill background no longer bleeds past the border
  • ♻️ [responsiveness] remove the unused --tng-viewport-size-* custom properties

.tng-container is unchanged β€” the default centred, max-width-capped wrapper (1140px / 1440px). Alongside it, .tng-container-v2 is a new opt-in full-width page frame: a full-browser-width block whose only job is the responsive side margin β€” 20 / 40 / 56 / 80 / 96px at base / sm / md / lg / xl β€” that keeps content off the viewport edges. It has no max-width and draws no columns; the 12-column rhythm lives in the separate .tng-grid primitive you nest inside.

Adopt the full-width grid by opting into .tng-container-v2 and nesting a .tng-grid, placing children with col-* spans:

<div class="tng-container-v2">
<div class="tng-grid">
<div class="col-8">main</div>
<div class="col-4">aside</div>
</div>
</div>

Edge-to-edge content inside the frame uses the standalone .tng-container-fullbleed helper (it composes onto a child at any depth). The default .tng-container keeps its .is-fullbleed child modifier for the same intent.

The breakpoint values were realigned to design’s shared grid tiers (ADR 0003). The two-letter token vocabulary (sm / md / lg / xl / 2xl) is unchanged β€” only the widths move β€” so any consumer reading a --tng-breakpoint-* token or a --tng-media-gte-* custom-media picks up the new trigger points automatically, and the display utilities (.hidden-sm, .hidden-lg, …) now switch at the new widths:

Tier Old New
xs 375px – (default)
sm 576px 390px
md 768px 768px (unchanged)
lg 992px 1024px
xl 1200px 1440px
2xl 1600px 1920px

There are no classes to rename, but audit any layout that depends on a specific switch point β€” a .hidden-lg block now hides from 1024px instead of 992px, and sm-gated styles now begin at 390px instead of 576px.

2xl (1920px) is now the topmost band. The 3xl breakpoint β€” its --tng-breakpoint-3xl token, the --tng-media-gte-3xl custom-media, and the .hidden-3xl, .hidden-3xl-only and .hidden-no-3xl display utilities β€” is removed with no replacement. Because there is no wider band for it to reappear in, .hidden-2xl-only now behaves identically to .hidden-2xl; prefer the latter:

<div class="hidden-2xl-only">…</div>
<div class="hidden-2xl">…</div>

The spacing scale’s 3xl step (.gap-3xl, .pb-3xl, …) is a separate scale and is untouched.

  • ✨ [media-button] apply the Lexus copper gradient to the progress arc and the hover / active ring. The resting button keeps its flat grey ring; on Lexus the swept progress arc and the ring on hover / active both paint copper, reusing the shared --tng-color-border-gradient-* tokens the rectangular gradient borders draw from, so arc and ring resolve one colour and share one outer edge (hover recolours the ring without thickening it). The circular ring is a linear-gradient masked into an annulus β€” no background-clip: border-area β€” so it renders in every browser; contrast uses the copper-200 β†’ copper-500 stops. Also fixes the recipe’s play / pause toggle so .tng-icon honours [hidden]
  • πŸ—‚οΈ [icon] move ai-sparkle from the operations category to technology
  • ✨ [segmented-control] add a pure-CSS, zero-JS segmented control β€” a single-select group built on a native <fieldset> + same-name <input type="radio"> segments, so grouping, single-select, roving arrow-key navigation and the accessible name come from the platform (no ARIA, no JS). The selected / hover / disabled / focus looks key off :has(input:*); ships .is-sm / .is-md / .is-lg sizes, an icon-only .is-icon variant, neutral / .is-contrast schemes, and equal-width 2–5 segments. Quarantine
  • πŸ”₯ [icon] remove the duplicate Lexus ai-sparkle icon (kept elsewhere in the set)
  • ⬆️ update figma tokens (14.0.0)
  • ✨ [tabs] add a tab picker semantic β€” wrap a native <input type="radio"> in a .tng-tabs-item <label> and the tab strip becomes a single-select radio group; the selected / disabled / focus looks key off :has(input:*) and the radio is visually hidden but stays focusable, so it needs no JS and no ARIA. The existing tab panel is unchanged
  • ✨ [gradient] add brand-aware gradient strokes & fills β€” paint a brand’s stroke or fill as a colour gradient instead of a flat swatch, animated restedβ†’hover. Lexus copper auto-applies to secondary / tertiary borders, the selected EV tab, and the slider EV track; the .tng-gradient-border hook and .border-secondary / .border-secondary-emphasis / .border-ev utilities opt any element in; brands with no bespoke stops get a gradient derived from their secondary accent
  • πŸ› [field] stop the button-control label floating to the top under load
  • πŸ› [field] fix autofill
  • πŸ› [typography] .tng-text-body (and siblings) no longer set a background β€” the token was never set, so it resolved to transparent and clobbered the .tng-scheme background
  • πŸ“¦ [package] figma-tokens is build-time inlined into the CSS and moved to devDependencies, so the published styleguide is self-contained and no longer pulls @tmedxp/figma-tokens into consumers’ dependency trees
  • 🩹 [reset] target app-root children instead of the root element
  • 🩹 [legacy] fix heading selector
  • ♻️ [package] inline component tokens β€” per-component entries move to {brand}/components/* (also forms, cards) with the brand’s tokens baked in; the brand-neutral components/*, forms/*, cards/* entries and dependencies.json are removed
  • ♻️ [field] merge control + field into one component
  • ♻️ [field] name the component field; control classes are now tng-field-control* (old tng-control* kept as compat aliases)
  • ⬆️ update figma tokens
  • ✨ [package] add chunked exports
  • ✨ [chat-messages] add component
  • ✨ [chip] add suggestion variant
  • πŸ’„ [chip] use active tokens
  • πŸ› [alert] fix header typography
  • πŸ› [carousel] fix control typography
  • ⬆️ update figma tokens
  • ✨ [label] add component
  • ✨ [model-card] add component
  • ✨ [varia] add .tng-no-touch-target
  • ♻️ [list] use label component
  • πŸ’„ [date-picker] remove selected hover button token
  • ⬆️ update figma tokens

The powertrain subtitle marker now uses the new Label component (.tng-label.is-blue) instead of a bare <em>. The .tng-list-powertrain styles are unchanged, so existing markup keeps working β€” but new code should reach for the Label component.

<em>
<i class="tng-icon icon-plug-droplet"></i>
<span>Powertrain</span>
</em>
<span class="tng-label is-blue">
<i class="tng-icon icon-plug-droplet" aria-hidden="true"></i>
<span>Powertrain</span>
</span>
  • πŸ’„ [control] use input tokens
  • πŸ’„ [field] use input tokens
  • πŸ› [popover] fix contrast background
  • πŸ’„ [accordion] improve group spacings
  • ⬆️ update figma tokens
  • ✨ [skeleton] add component
  • πŸ’„ [accordion] improve group spacings
  • πŸ› [count-indicator] fix RTL icons
  • πŸ› add font-family sans-serif fallback
  • ✨ [frame] support iframe and picture
  • ✨ [divider] add edge start/end variants
  • πŸ› [content] set default foreground
  • πŸ› [popover] fix arrow gap
  • πŸ› fix flex column children’s inline sizing
  • ⬆️ update figma tokens
  • πŸ’₯ ✨ [count-indicator] rework component
  • πŸ› [popover] simplify contrast surface
  • ⬆️ update figma tokens

The dots pagination has been removed. The component is now an inline flex wrapper around an optional label pill (.tng-count-indicator-label) and any combination of .tng-icon-button siblings. The internal layout sub-elements β€” .tng-count-indicator-helper, .tng-count-indicator-dots, .tng-count-indicator-buttons β€” are gone; mark up the label and icon buttons as direct children of .tng-count-indicator.

<div class="tng-count-indicator">
<div class="tng-count-indicator-helper">1 of 6</div>
<div class="tng-count-indicator-dots">
<div class="is-current"></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div class="tng-count-indicator-buttons">
<button class="tng-icon-button is-sm" aria-label="Previous">
<i class="tng-icon icon-chevron-left" aria-hidden="true"></i>
</button>
<button class="tng-icon-button is-sm" aria-label="Next">
<i class="tng-icon icon-chevron-right" aria-hidden="true"></i>
</button>
</div>
<span class="tng-count-indicator-label">1 of 6</span>
<button class="tng-icon-button is-sm" aria-label="Previous">
<i class="tng-icon icon-chevron-left" aria-hidden="true"></i>
</button>
<button class="tng-icon-button is-sm" aria-label="Next">
<i class="tng-icon icon-chevron-right" aria-hidden="true"></i>
</button>
</div>

The label may sit at the start, in the middle, or at the end of the wrapper; spacing adapts to its position. Its block size tracks the sibling .tng-icon-button size (.is-xs, .is-sm, .is-md, .is-lg), so the label and buttons stay aligned without manual sizing.

  • πŸ› [tabs] overflow, focus ring, multiline labels
  • πŸ› [display] fix 2/3 xl utilities
  • πŸ› [button] fix primary border
  • πŸ’₯ ⬆️ update figma tokens
  • πŸ’₯ 🚚 [social-media-button] rename from social-share-button
  • ✨ [icon-button] add xs size
  • ✨ [chip] add on-image variant
  • ✨ [border] add soft, primary-emphasis and secondary-emphasis utilities
  • ♻️ [stepper] use new tokens

The component class has been renamed to align with the Figma component name.

<button class="tng-social-button tng-social-media-button">
<span class="tng-icon icon-facebook"></span>
</button>

.tng-social-button is kept as a backwards-compatible alias of .tng-social-media-button.

The Figma tokens upgrade renames several token custom properties. Consumers that reference styleguide classes are unaffected; if you read tokens directly:

  • Variant / scheme order swapped on icon-button tokens: --tng-buttons-icon-button-{variant}-{scheme}-* becomes --tng-buttons-icon-button-{scheme}-{variant}-* (e.g. --tng-buttons-icon-button-filled-neutral-rested-fill-color β†’ --tng-buttons-icon-button-neutral-filled-rested-fill-color).
  • disabled-background-color is now disabled-fill-color on chips and on the secondary main button’s contrast scheme.
  • πŸ› remove root container
  • πŸ› [content] fix some typography
  • πŸ’₯ ✨ [divider] remove ev / sizes
  • πŸ› [list] fix plain list typography
  • ✨ [assets] add assets
  • ✨ restructure pages

The EV styles have been removed.

<div class="tng-divider is-ev"></div>

The primary color no longer switches to contrast mode.

<div class="tng-divider is-primary"></div>

Intrinsic sizing has been removed. You have to add your own sizing declaration if you need any size other than 100%.

<header class="tng-stack">
<h2 class="mbe-4xl | tng-text-title is-5">Title Heading</h2>
<div class="tng-divider is-primary" style="inline-size: 40px"></div>
</header>

Title Heading

  • πŸ“ [size] update stretch to 100%
  • πŸ“ [carousel] update documentation
  • πŸ“ update drafts
  • πŸ”₯ clean up badges < 2 months
  • ✨ [chip] implement
  • πŸ› [carousel] fix prefers-reduced-motion
  • πŸ”₯ [carousel] remove recipe custom types
  • πŸ”₯ [overflow] remove unneeded property
  • πŸ› [toggle] input shrink 0
  • πŸ› [stepper] fix label
  • πŸ› [checkbox] input shrink 0
  • πŸ› [radio] input shrink 0
  • πŸ› [size] fix size-full on firefox/webkit
  • ⬆️ update figma tokens
  • πŸ› [size] fix size-full on firefox/webkit
  • πŸ“ update DX playbook domains
  • ✨ [carousel] implement
  • ⚑️ [cds] contain layout paint
  • πŸ› [link] fix inline link
  • ✨ [stepper] improve label
  • ✨ [overflow] support scheme
  • πŸ“± [stepper] improve mobile / tablet
  • πŸ“ [icon] fix non-monochrome icon examples
  • πŸ“ [z-index] improve example
  • πŸ› [background] fix decorative backgrounds
  • ✨ [overflow] hide scroll bars within indicators
  • πŸ› [control] fix control button focus outline
  • ✨ [stepper] implement
  • ✨ update figma tokens
  • πŸ’„ [tabs] add number label example
  • ✨ [overflow] improve indicators
  • πŸ› [cds] fix inset demo
  • πŸ“ [count-indicator] review documentation
  • πŸ› [modal] fix chrome close render flash
  • πŸ’„ [control] review
  • ✨ [z-index] add above
  • ♻️ [focus] review
  • πŸ”₯ [control] remove is-valid variant
  • ✨ [radio] implement
  • ✨ [checkbox] implement
  • ✨ [simple-card] implement
  • 🚚 align forms with figma
  • πŸ’₯ 🚚 restructure exports

The exports have a breaking change in this release.

Export Before After
assets.css none Export assets
styles.css Export styles + assets Export styles
no-icons.css Export styles none

Meaning we now have mutually exclusive exports for styles and assets.

  • πŸ“ [usage] improve layers documentation
  • 🚚 rename tng-box to tng-scheme
  • ♻️ remove tng-box reliance
  • πŸ“ clean up documentation
  • ♻️ [color-utilities] refactor out custom properties
  • ✨ [layouts] add flex nowrap
  • ♻️ [position] refactor out custom properties
  • ♻️ [layouts] refactor out custom properties
  • πŸ“ [modal] remove unused background color
  • 🩹 [position] don’t assume size
  • ♻️ [spacing] refactor out custom properties
  • ♻️ [elevation] refactor out custom property
  • πŸ’„ [cds] fix selector
  • ✨ [platform-badge] add platform badges
  • ♻️ [figma] render dedicated text styles variables
  • πŸ“ [figma] fix content
  • πŸ› [figma] render box border size
  • πŸ› [cds] render dimension fallback
  • πŸ’„ [figma] tweak components
  • πŸ“ [figma] review documentation
  • πŸ“ [buttons] align cross-topic button structure
  • πŸ‘· [gh] non-prod always builds preview mode
  • πŸ› [apply] re-apply revert
  • πŸ“ [figma] add radio button documentation
  • πŸ“ [figma] add input field documentation
  • πŸ“ [figma] add sticky bottom bar documentation
  • πŸ“ [figma] group forms documentation
  • πŸ“ [figma] add checkbox documentation
  • πŸ“ [figma] add stepper documentation
  • πŸ“ [figma] add tag documentation
  • πŸ“ [figma] add popover documentation
  • πŸ“ [figma] add tabs documentation
  • πŸ“ [figma] add modal documentation
  • πŸ“ [figma] add list documentation
  • πŸ“ [figma] add slider documentation
  • πŸ“ [figma] add dropdown documentation
  • πŸ“ [figma] add count indicator documentation
  • πŸ“ [figma] add divider documentation
  • πŸ“ [figma] add link documentation
  • πŸ“ [figma] add social media button documentation
  • πŸ“ [figma] add pill button documentation
  • πŸ“ [figma] add icon button documentation
  • πŸ“ [figma] add main button documentation
  • πŸ“ [figma] add backdrop documentation
  • πŸ“ [cds] add agent figma component mapping documentation
  • πŸ“ [figma] review accordion documentation
  • πŸ“ [link] document sizes
  • πŸ“ [figma] review typography documentation
  • πŸ“ [figma] review color documentation
  • πŸ› [revert] set initial for inherited properties
  • πŸ“± [cds] responsive hero
  • πŸ’„ [cds] update brand select to buttons
  • 🚚 [cds] tweak titles
  • πŸ“ [reset] document .tng-legacy-apply
  • πŸ“ [cds] expand utility documentation
  • ✨ [z-index] add semantic stacking
  • ✨ [slider] implement slider
  • πŸ’„ [cds] fix markdown li max-inline-size
  • 🩹 [cds] disable RTL / dark mode for now
  • πŸ’„ [cds] redesign splash hero
  • πŸ”₯ [cds] remove GitHub links
  • πŸ§ͺ [count-indicator] add visual tests
  • πŸ’„ [sticky-bottom-bar] fix documentation demo
  • πŸ’„ [cds] increase content width
  • 🚚 [cds] pluralize foundations
  • πŸ’„ [cds] tweak components
  • πŸ’„ [cds] use own tokens
  • πŸ› [cds] hide related pages on splash page
  • ✨ [cds] switch logos with theme select
  • 🚚 [cds] don’t structure content around teams
  • πŸ”₯ [cds] remove archive
  • ♿️ prefer aria-label over sr-only
  • ♿️ improve recipe a11y
  • ✨ [checkbox] add fieldset / reset
  • πŸ“ expand a11y documentation
  • πŸ“ [sticky-bottom-bar] add module and recipe
  • ✨ [count-indicator] update implementation
  • ✨ add aemglobal CSS layer
  • 🚚 [count-indicator] rename pagination to count indicator
  • πŸ’₯ ♻️ [list] deprecate internal dividers
  • πŸ“ [usage] add CSS layers caveats
  • πŸ“ [varia] add focus documentation
  • πŸ“ align color utilities
  • πŸ’« document and implement consistent animations
  • 🩹 [reset] improve border box
  • πŸ’₯ ♻️ [accordion] use divider component
  • πŸ› [tabs] fix overflow gradient
  • πŸ’₯ ♻️ [box] refactor surface into box and utlities
  • πŸ”₯ [stroke] deprecate
  • πŸ› [list] fix padding on interactive control
  • ✨ introduce related pages

We used to have a Surface foundations core component that could handle some things like backgrounds and borders. Now we have implemented color utilities for background, border, and foreground.

These utilities include all semantic tokens for backgrounds, surfaces, and fills. Consequently the component needed to be renamed.

The Accordion and List components no longer have their own with dividers variant. All divider responsibility is now handled by the Divider component.

<div class="tng-stack | tng-has-dividers">
<details class="tng-accordion has-divider">
<summary class="tng-accordion-trigger">
<span>Personal information</span>
<i class="tng-icon icon-chevron-down" aria-hidden="true"></i>
</summary>
<p class="tng-text-body">
Your personal information is kept private and secure.
</p>
</details>
</div>

The stroke classes have been removed from the documentation a long time ago but have remained in the styles.

Use (eg.) .border-xs in favour of stroke-xs.

It used to be list options still require a lot of manual styles to position its contents. The List Option now can handle leading/trailing icons and interactive content.

<li class="tng-list-option">
<a href="#">
<i aria-hidden="true" class="tng-icon icon-car is-md"></i>
<span>Option</span>
<i
aria-hidden="true"
class="tng-icon icon-chevron-right tng-rtl-flip-x"
></i>
</a>
<i aria-hidden="true" class="tng-icon icon-chevron-right tng-rtl-flip-x"></i>
</li>

If you want your whole list option to be interface (a / button) make sure to have all icons inside of the element. The list option will delegate its layout rendering to its interactive child.

<li class="tng-list-option">
<a href="#">
<i aria-hidden="true" class="tng-icon icon-car is-md"></i>
<span>Option</span>
<i
aria-hidden="true"
class="tng-icon icon-chevron-right tng-rtl-flip-x"
></i>
</a>
<i aria-hidden="true" class="tng-icon icon-chevron-right tng-rtl-flip-x"></i>
</li>
  • 🚚 [icons] move ai-search to brandless
  • πŸ› [modal] fix at maximum sizing
  • 🩹 [button] rename pill active state to selected
  • ⬆️ bump figma tokens
  • πŸ’„ [modal] default only default slots to checkered
  • πŸ’„ [modal] target only modal root frame
  • πŸ’„ [popover] fix close button RTL
  • ✨ [button] finish pill button
  • πŸ’„ [button] fix icon button border color states
  • ✨ [icons] add UI pause / spinner
  • πŸ’„ [button] remove main tertiary inline padding
  • 🩹 [root] apply automatically to Storybook
  • πŸ› [modal] fixed maximized modal
  • πŸ› [table] fix color
  • πŸ› [table] fix inline size
  • πŸ“ [teams] update teams
  • πŸ’„ [teams] spruce up page
  • πŸ› [modal] remove aria-modal true(scroll lock)
  • πŸ› [modal] fix touch target interop
  • πŸ“ [RTL] document flip X utility
  • πŸ› [modal] fix and automate scroll lock
  • πŸ› [modal] fix backdrop
  • ✨ [varia] add focus-within utility
  • πŸ› [toggle] fix RTL
  • ✨ [varia] add touch target
  • πŸ“ update glossary
  • πŸ‘· [icons] fix ICONS type array literal
  • πŸ› [icons] fix categories
  • πŸ‘· [icons] expose categories
  • πŸ“ [icons] document import path change
  • πŸ’« [modal] fix close transition
  • πŸ› [accordion] fix webkit render
  • 🩹 [icons] optimize
  • πŸ‘· [icons] provide build without inlined icons
  • 🚚 group form components
  • ✨ [overflow] add chevrons
  • ✨ [tabs] finish implementation
  • ✨ [overflow] add scroll indicators
  • πŸ’„ [table] fix overflow breaking
  • πŸ’„ [table] fix font size
  • πŸ’„ [table] fix header alignment
  • πŸ“ demo Georgian unicode range
  • πŸ› [icon] fix operations view on / off
  • 🚚 [icons] move to shared
  • πŸ› [icons] fix rating star color
  • πŸ”₯ [slot] make default variant implicit
  • πŸ’₯ [popover] remove header element
  • πŸ’₯ ⬆️ bump figma tokens
  • πŸ› [modal] fix scroll to top
  • πŸ› [modal] fix Safari
  • πŸ“ [popover] document different parts
  • πŸ› [popover] move shadow to outer element
  • πŸ§ͺ [popover] add title

The import paths for icons have changed.

import { ICONS, type Icon } from '@tmedxp/styleguide/toyota/icons';
import { ICONS, type Icon } from '@tmedxp/styleguide/toyota';

Or you can get the full namespace from either the root or the brand entry point.

import { Toyota } from '@tmedxp/styleguide';
import * as Toyota from '@tmedxp/styleguide/toyota';
let Toyota.ICONS: Toyota.Icon[];

The header element is not necessary anymore. The title can exists on its own and should be placed after the close icon, if present.

<div class="tng-popover-bubble">
<div class="tng-popover-header">
<div class="tng-text-title">${lorem0}</div>
</div>
<button class="tng-icon-button is-ghost" aria-label="Close">
<i class="tng-icon icon-close" aria-hidden="true"></i>
</button>
<div class="tng-text-title">${lorem0}</div>
<p class="tng-text-body">${lorem2}</p>
</div>
  • ✨ update divider implementation
  • 🚚 [utilities] rename visibility to display
  • πŸ› [typography] fix selection psuedo element
  • πŸ’„ [typography] update heading inferred sizes
  • πŸ› [icons] fix branded icons
  • ✨ add tabs component
  • πŸ§ͺ [visual test] add dir support
  • πŸ› [rtl] fix issues
  • ✨ add RTL toggle
  • πŸ’₯ 🚚 rename with-* to has-*
  • πŸ“ [text box] document
  • List component modifier renamed with-divider to has-divider.
  • ✨ add accordion component
  • ✨ update reset / root rendering
  • πŸ› [content] fix heading typography
  • ✨ implement energy labels
  • πŸ’„ implement text box
  • πŸ’₯ 🚚 [core] rename LexusType back to Nobel
  • ♻️ replace content hr with divider
  • πŸ’₯ ✨ rework typography
  • Typography has converged all its classes under tng-text-body and tng-text-title and switched to an ordinal scale.
  • Lexus font family has been renamed from β€œLexus Type” back to β€œNobel”. Make sure to update your @font-face directives.
  • ✨ add table component
  • πŸ’₯ 🚚 rename lists
  • ✨ implement modal
  • πŸ“ fix maximum positioning demo
  • πŸ’₯ ♻️ rebrand placeholder as slot
  • ✨ add select list
  • πŸ“ add checkbox list recipe
  • πŸ› fix col/row gap usage
  • ♻️ rework focus reusage
  • πŸ’₯ render tokens reference per brand
  • πŸ’₯ update typography
  • 🎨 fix icons format
  • πŸ‘· auto deploy releases to prev
  • πŸ› [icon] rotate toyota trade-cycle-management
  • πŸ› fix icons reference UI and copy
  • ✨ add CloseWatcher to tooltip recipe
  • πŸ’„ add visual link button tests
  • ✨ setup visual regression testing
  • ✨ add explicit default classes
  • πŸ’₯ ♻️ prefix internal components
  • πŸ› [button] fix lexus borders
  • πŸ’₯ ✨ [popover] add border
  • πŸ› [popover] fix contrast styles
  • πŸ› [popover] fix typography
  • πŸ› [link] remove default padding

The HTML structure for popover has been updated.

<div class="tng-popover">
<div class="arrow"></div>
<div class="header">
<!-- -->
</div>
<p class="tng-text-body">
<!-- -->
</p>
</div>
<div class="tng-popover">
<div class="tng-popover-arrow"></div>
<div class="tng-popover-header">
<!-- -->
</div>
<div class="tng-popover-bubble">
<p class="tng-text-body">
<!-- -->
</p>
</div>
</div>

tng-text-link has been renamed to tng-link.

  • 🚚 rename modules to recipes
  • πŸ› [content] fix blockquote contrast scheme
  • ✨ implement popover
  • ♻️ move schemes to mixin
  • πŸ“ add teams structure
  • 🩹 [alert] simplify demo
  • πŸ§‘β€πŸ’» [surface] add release note
  • ✨ [button] add tertiary ghost
  • πŸ”₯ [button] remove unused token
  • πŸ› [button] fix gap
  • πŸ§‘β€πŸ’» add token values to reference
  • πŸ’₯ πŸ§‘β€πŸ’» merge border utilities
  • ♻️ update tokens reference
  • 🚚 move changelog into reference guide
  • πŸ’₯ ♻️ merge box and scheme into surface
  • πŸ’₯ ✨ add margin utilities

stroke-<size> has been renamed to border-<size>.

tng-box and tng-scheme have been merged into tng-surface.

  • There’s no default padding anymore, add p-md to add the old default.
  • There’s no default text styling mixin anymore. Add tng-text-body or which-ever typography class you want to the element or any of its children.

We have added margin utilities analog to the existing padding utilities.

  • Margin can be applied to the Wrapper layout component.
  • Padding can be applied to the Surface (previously Box) core component.
  • The is-centered variant is removed from the Wrapper layout component. You can use the margin utility mi-auto now.
  • πŸ“ split AEM / React documentation
  • ✨ rework tokens
  • All primitive font tokens (--tng-font-*) have been heavily restructured.
  • All semantic color tokens (--tng-(border|foreground|surface)-*) have been heavily restructured.
  • All component tokens (--tng-(buttons)-*) have been heavily restructured.
  • is-danger is renamed to is-error to match the terminology of the tokens.
  • (is|on)-inverse is renamed to (is|on)-contrast to match the terminology of the tokens.
  • πŸ“ explicit icon scheme support
  • πŸ’„ improve list styles
  • 🚸 enhance animations on no preferred motion
  • ♻️ tweak styleguide export
  • πŸ› fix icons export types
  • ✨ align font families, subfamiles and weights document icon differences
  • πŸ“ Updated and restructured documentation
  • 🚚 Rename CSS layer tng.modules to tng.userstyles
  • ✨ add list component
  • ✨ Added icons from scratch from Figma