ComponentPackage. Existing family registration
rejects overlapping package namespaces. The public helper creates separate names
for tokens, fonts and keyframes; it never loads another stylesheet or copies the
implementation of a child component.
The slash notation above lists separate variables, for example
--fff-text-sm, --fff-text-md and --fff-text-lg.
Keep author selectors scoped to your own explicit classes. stylesFrom retains
the actual style owner; the namespace helper does not rewrite CSS, acquire fonts,
validate arbitrary third-party stylesheet contents or grant origin permissions.
Declare font/binary resources in your asset graph and use your namespaced family
name in @font-face. Keep native .dark, logical properties and dir support;
changing appearance alone does not require a factory restart or resource fetch.
Repeated SVGs and server rendering
A gradient, mask, filter or clip path needs an instance identity. A component name alone is insufficient when the same component appears twice, in a repeater, table or suspended modal.url(#...) reference together. In JavaScript, pass the
same server-rendered instance string:
Theme configuration admission
The existing aliases (primary, radius, field_bg and their documented related
aliases) and literal --fff-*/fff_* variables remain available. Package tokens
use mergePackageTheme() to generate names without overriding the core namespace.
Theme updates validate atomically: invalid input leaves the previous map intact.
Each complete map is limited to512 entries and64KiB of names/values, with at
most2048 bytes per value. Values are strings or finite numbers. Objects, arrays,
unknown aliases, malformed names, declaration delimiters, markup, escapes,
comments and explicit resource-loading/executable functions reject. Ordinary
var(), calc(), gradients, colors, quoted font names and comma-separated shadow
values remain supported. Values are not semantically type-checked as individual
CSS properties; trusted application configuration and stylesheet authors still
own their values and resource permissions.
Previously ignored unknown aliases and nonscalar values now fail explicitly.
Remove those obsolete settings before upgrading. Theme maps remain request/job
scoped and detach caller references; author helpers themselves retain no state.