Skip to content
Ringobook v3.26.0

Migration Guide

This guide lists removed or deprecated class names, variants, and markup patterns in recent @ringover/styles releases (currently documented against 3.26.0). Use it when upgrading from older Ringobook examples or legacy product markup.

Component pages also call out local deprecations; this page is the central reference.

AreaRemoved or deprecatedUse instead
Close button.ro-closeGhost icon .ro-btn — see Close Button
Cards (pre-3.20).ro-shadow-*, .ro-bg-*, colored .ro-border-*, .ro-card-btnRedesigned Card API
Form field wrapper.ro-form-control, .ro-label, .ro-form-error-message.ro-field, .ro-field-label, .ro-field-error — see Form Layouts
Option groupsGeneric .ro-fieldset styling.ro-radio-group, .ro-checkbox-group
Input variant.ro-variant-light.ro-variant-grey — see Inputs
Alerts.ro-color-scheme-product, .ro-color-scheme-infosuccess, warning, or danger — see Alerts
Badgesinfo, success, warning, white color schemesproduct, danger, or status variants — see Badge
Dropdown itemsinfo, success, warning item schemesproduct, danger, or default — see Dropdown
Buttonsdata-ro-variant, data-ro-color-scheme.ro-variant-*, .ro-color-scheme-* — see Buttons
Avatarsdata-ro-size, product / danger color schemes.ro-size-* classes (see size table); dynamic schemes for initials — see Avatars
Chipsoutlined, muted, muted-outlined; info, white; --ro-chip-rgbDefault filled chips; supported schemes below — see Chips
Chips & othersdata-ro-* attributesEquivalent .ro-* CSS classes
Meet Us theme (CDN)meet.css filenamemeet-us on data-ro-theme; npm @ringover/styles/themes/meet-us — see Setup
IconsRenamed icon classesReplacement names in Icons

The dedicated close-button class was removed. Use a small ghost icon button:

<button class="ro-btn ro-variant-ghost ro-shape-icon ro-size-sm" aria-label="Close">
<i class="ro-icon ro-icon-x-small"></i>
</button>

On colored surfaces, add .ro-color-scheme-inverted. See Close Button.


The card component was rebuilt. The old utility modifiers on .ro-card are no longer shipped.

  • Colored shadows: .ro-shadow-product, .ro-shadow-info, .ro-shadow-success, .ro-shadow-warning, .ro-shadow-danger
  • Background utilities: .ro-bg-product, .ro-bg-info, .ro-bg-success, .ro-bg-warning, .ro-bg-danger, .ro-bg-grey-light, .ro-bg-grey-dark, .ro-bg-translucent
  • Colored borders: .ro-border-product, .ro-border-product-light, .ro-border-danger, and legacy semantic border colors
  • Floating action: .ro-card-btn

Use semantic sub-elements and variants:

<article class="ro-card ro-clickable">
<div class="ro-card-media ro-size-md">
<img src="" alt="" />
</div>
<div class="ro-card-content">
<header class="ro-card-header"></header>
<p class="ro-card-body"></p>
<footer class="ro-card-footer"></footer>
</div>
</article>
ClassPurpose
.ro-dir-horizontalSide-by-side media and content
.ro-variant-ghostTransparent border; light hover background
.ro-clickablePointer cursor and hover shadow
.activeSelected state (accent border)
.ro-card-media.ro-size-sm / md / lgMedia dimensions

See Cards for full examples.


Prefer the ro-field layout over legacy form-control markup:

LegacyCurrent
.ro-form-control.ro-field
.ro-label (direct child).ro-field-label inside .ro-field-header
.ro-form-error-message.ro-field-error

Legacy class names remain supported for backward compatibility.

Use ro-radio-group or ro-checkbox-group on <fieldset> with .ro-field-legend. Style individual options with .ro-input-option.

Replace .ro-variant-light with .ro-variant-grey.


Several components dropped generic semantic schemes (info, and in some cases success / warning) in favor of a smaller, product-specific set.

DeprecatedSupported
product, infosuccess, warning, danger
DeprecatedSupported
info, success, warning, whiteDefault (neutral), product, danger, and status: available, incall, snooze, disconnected with .ro-variant-status
DeprecatedSupported
info, success, warning on .ro-dropdown-itemproduct, danger, or default

Apply variant and color-scheme classes on .ro-btn. On .ro-btn-group, the same classes cascade to every child button.

VariantClassDescription
Solid(default)Filled background; no variant class needed
Outlined.ro-variant-outlinedBorder with transparent fill
Dashed.ro-variant-dashedDashed border (v3.25+)
Muted.ro-variant-mutedSoft filled background
Muted outlined.ro-variant-muted-outlinedSoft border style
Ghost.ro-variant-ghostTransparent until hover/focus
Link.ro-variant-linkText-only button
White.ro-variant-whiteLight surface variant (not a color scheme)
Search.ro-variant-searchSearch-field styling
<!-- Before -->
<button class="ro-btn" data-ro-variant="outlined" data-ro-color-scheme="product">Save</button>
<!-- After -->
<button class="ro-btn ro-variant-outlined ro-color-scheme-product">Save</button>
SchemeClassDescription
Neutral(default)Standard component colors
Product.ro-color-scheme-productPrimary accent
Danger.ro-color-scheme-dangerDestructive actions
Black.ro-color-scheme-blackDark fill
White.ro-color-scheme-whiteLight fill
Inverted.ro-color-scheme-invertedAdapts to light/dark mode context
Glass.ro-color-scheme-glassFrosted glass effect (v3.21+)
AI.ro-color-scheme-aiGradient AI styling; pairs with .ro-variant-outlined

See Buttons for examples.


Chips use a single filled style — there is no .ro-variant-outlined / .ro-variant-muted on .ro-chip (those variants apply to buttons only).

PatternClassDescription
Default.ro-chipStatic label or filter
Toggleable.ro-toggleable + .activeSelectable chip; shows .ro-chip-active-icon when active
CategorySchemes
Core(default), product, light
Semanticsuccess, warning, danger, favorite, inverted
Specialglass, ai
Businessincoming, outgoing, missed, voicemail, snooze
Dynamicgrey, blue, green, yellow, orange, red, pink, purple, brown

Apply with .ro-color-scheme-{name} (for example .ro-chip.ro-color-scheme-success).

RemovedUse instead
Variants: outlined, muted, muted-outlined on .ro-chipDefault filled chip; .ro-toggleable for selection
Colors: info, whiteproduct, light, or a semantic/dynamic scheme
DeprecatedCurrent
Inline --ro-chip-rgb--ro-chip-color-scheme (hex, rgb(), hsl(), or CSS variable)
<!-- Before -->
<div class="ro-chip" style="--ro-chip-rgb: 105, 5, 120, 0.2"></div>
<!-- After -->
<div class="ro-chip" style="--ro-chip-color-scheme: #690578"></div>

See Chips for examples.


Replace data-ro-size with the matching .ro-size-* class:

Size tokenClassDeprecated attributeSide length
2xs.ro-size-2xsdata-ro-size="2xs"20px
xs.ro-size-xsdata-ro-size="xs"24px
sm.ro-size-smdata-ro-size="sm"32px
md(default) or .ro-size-mddata-ro-size="md" or omitted40px
lg.ro-size-lgdata-ro-size="lg"48px
xl.ro-size-xldata-ro-size="xl"64px
2xl.ro-size-2xldata-ro-size="2xl"108px
<!-- Before (attribute API) -->
<div class="ro-avatar ro-shape-circle" data-ro-size="lg">
<img class="ro-avatar_img" src="" alt="" />
</div>
<!-- After (class API) -->
<div class="ro-avatar ro-shape-circle ro-size-lg">
<img class="ro-avatar_img" src="" alt="" />
</div>

Avatar size tokens were remapped in @ringover/styles 3.18.0 (2026-05-05; @ringover/ringo-ui 0.10.0). The same token name no longer yields the same side length. When upgrading from 3.17.x or older (including legacy Ringobook examples), pick the 3.18.0+ token that matches the pixel size you need, not the old token name.

Pre-3.18.0 tokenSide length3.18.0+ tokenSide length
xs16px(no equivalent; closest is 2xs at 20px)
sm20px2xs20px
md24pxxs24px
lg32pxsm32px
xl40pxmd40px
2xl48pxlg48px
3xl64pxxl64px
4xl80px(no equivalent; closest is 2xl at 108px)
5xl100px2xl108px (closest)
<!-- Pre-3.18.0: xl = 40px -->
<div class="ro-avatar ro-shape-circle" data-ro-size="xl"></div>
<!-- 3.18.0+: same 40px side length → md -->
<div class="ro-avatar ro-shape-circle ro-size-md"></div>

Tokens 3xl, 4xl, and 5xl are removed in 3.18.0. Map 3xl (64px) to xl, and 4xl / 5xl to 2xl (108px) when you need the largest supported size.

Deprecated attributeClass equivalent
data-ro-border, data-ro-border="1".ro-border or .ro-border-basic
data-ro-border="2".ro-border-2 or .ro-border-outlined
data-ro-fit="contain".ro-fit-contain
data-ro-fit="cover".ro-fit-cover
data-ro-color-scheme="{name}".ro-color-scheme-{name} (initials palette)
  • product / danger / info / success / warning for border tinting are removed. Borders use accent tokens via .ro-border / .ro-border-2.
  • For initials backgrounds, use dynamic schemes: grey, blue, green, yellow, orange, red, pink, purple, brown.

See Avatars for examples.


Class-based APIs are preferred over data-ro-* attributes where both exist:

AttributeClass equivalent
data-ro-size on avatars.ro-size-* — see Avatar sizes
data-ro-size on badges.ro-size-*
data-ro-variant, data-ro-color-scheme on buttons.ro-variant-*, .ro-color-scheme-* — see Buttons
data-ro-color-scheme on chips.ro-color-scheme-* — see Chips
data-ro-dir="horizontal".ro-dir-horizontal
data-ro-border, data-ro-fit on avatars.ro-border-*, .ro-fit-* — see Other avatar attributes

Web Components (for example <ro-dropdown>) may still use data-ro-placement and similar attributes where no class API exists.


ContextOldCurrent
CDN theme filemeet.cssStill served as meet.css for backward compatibility
data-ro-theme / npm importmeet (informal)meet-us@ringover/styles/themes/meet-us

See Setup for CDN and npm theme loading.


When an icon is renamed, the old class remains as a deprecated alias until a future major release. Browse replacements in the Icons gallery under Deprecated.