Progress in the Socra UI system.
Progress primitives are used, but no shared recipe page exists yet.
| State | Theme path | Rule |
|---|---|---|
Default | theme.palette.text.primary | Clear, enabled, and ready. |
Hover | theme.palette.action.hover | Pointer feedback only. |
Selected | theme.palette.action.selected | Persistent chosen state. |
Loading | theme.palette.action.disabledBackground | Show honest work underway. |
Disabled | theme.palette.action.disabled | Unavailable until the cause is resolved. |
Primary action role.
Working surface role.
Primary text role.
Spacing role.
Shape role.
Use Progress through the shared Socra UI stack so every product stays standardized.
A partial theme or primitive contract exists, but the full shared component page still needs product-ready coverage.
Every visible value comes from @socra/theme or a themed MUI primitive.
The page becomes complete only when the live state matrix and copy-paste recipe are real.
The system improves once and every product inherits the fix.
A component earns a place only when it helps the user decide, act, recover, or understand.
Local UI creates drift; library contracts create standardization.
A local primitive splits behavior and future migrations.
Values live in @socra/theme and are consumed by name.
If the hierarchy is weak, fix the hierarchy.
<Stack spacing={2}>
<LazyLiveExample kind="Progress" />
</Stack>