Skip to content

v0.1.2

Choose a tag to compare

@capy-ai capy-ai released this 13 Nov 22:20
· 276 commits to main since this release

Breaking changes

Version-free naming (#10). No back-compat aliases are kept, so every consumer (the Infisical app and license-server-go) has to update in this release.

  • V4Scope is now CipherScope, and the .v4 scope class is now .cipher.
  • --v4-* custom properties are now --cipher-*, including the hue tokens.
  • data-v4-* attributes are now data-cipher-*, and .v4-switcher-* classes are now .cipher-switcher-*.
  • The source stylesheet src/v4.css is now src/base.css. The built ./styles.css export (dist/cipher.css) doesn't change. Registry installs now land in src/components/cipher/.
  • These hooks and helpers lose their v4 prefix:
    • usePortalContainer, useCollisionBoundary, useToastLayer, useScheme, useTheme
    • readBootTheme, themes, defaultTheme, legacyThemes, toTheme, themeScheme, themeChain, themedValue, themeStorage
    • the Scheme and ThemeDefinition types
  • V4_TOASTER_ID is now TOASTER_ID, with the value "cipher".
  • useV4ActionBarReserve is now useActionBarReport. top-bar already exports a different useActionBarReserve.
  • v4LiveOrgPath is removed. It describes an app route, so it now lives in the app.
  • readBootTheme and BootLoader take their storage keys and allowPreview from the host (keys and storageKeys). The defaults are cipher-scheme, cipher-theme and cipher-theme-override. Pass your existing keys to keep users' saved themes.

Framed Cards take no description (#19). On variant="framed", description is now typed never. Plain Cards keep it. When a framed table needs an explanation, use the new hint.

Documentation link (#20). DocumentationLinkBadge (ui/documentation-link-badge) is replaced by DocumentationLink (ui/documentation-link):

  • It's an icon-only link with no text, background or border, and subject is required.
  • The variant prop is removed.
  • The data-slot and the registry item are renamed to documentation-link.
  • PageHeader's badges container now has data-slot="page-header-badges".

Added and improved

  • Halftone, hue scopes and grain (#7). Adds ui/halftone and Card's backdrop slot. Hue scopes come from lib/hue: --cipher-hue with data-hue="subtle" | "pop", which drives --cipher-hue-icon, -tint, -soft and -fill. <AppShell grain> paints an opt-in band grain.
  • Bare icon toggles (#9). An icon-only Button with selected or aria-pressed renders bare, and its filled state takes the product hue.
  • Polish (#11):
    • Card links are scoped to the card.
    • The pager select is lighter, toasts sit lower, the calendar is bounded, and sheet footers keep their buttons in one row.
  • Framed Card hint (#19). A dotted underline on the title, plus a plain-text Tooltip on hover and keyboard focus.
  • DocumentationLink sizes (#20). It sizes itself to where it sits:
    • 32px glyph in a 32x44 hit area beside a page title, and 20px beside a medium title.
    • 12px in Field labels and framed card headers, and 16px everywhere else.
    • size="sm" | "md" | "lg" overrides it, using the new token --cipher-size-icon-2xl.
  • Item rows with actions (#21). A container query at 44rem switches between two layouts:
    • Inline: the timestamp hugs the title on its first-line baseline, with 32px before the buttons.
    • Stacked: the timestamp sits at the end of the title row, and the buttons get their own row.
    • Outline rows get 24px insets and a 2px gap from title to description.
    • The new titleLines prop clamps the title and shows the full title in a Tooltip.
  • Showcase theme switch (#22). It's now one bare sun and moon toggle. This only affects the docs site.