Plumeria v7.4.0

2026-02-10

Changes

Internal types such as ReturnType<T> are no longer exported.

Fixed an edge case in 7.3.x where type definitions were mixed into bundles.
Additionally, file resolution is prioritized and build optimized due to the influence of the exports field.

  "exports": {
    ".": {
      "types": "./lib/css.d.ts",
      "import": "./lib/css.js"
    }
  },

This css.js has been verified to have no impact on the bundle.

css.js
export {}

Core has been rewritten to remove redundant separation syntax.

core/lib/css.d.ts
declare module '@plumeria/core' {
  import type { 
    CreateStyleType,
    CreateStatic,
    CreateTheme,
    Keyframes,
    ViewTransition,
    ReturnType,
    ReturnVariableType,
    Variants,
    Marker,
    Extended,
  } from './types';

  export type CSSProperties = import('./types').CSSProperties;
  export type CreateStyle = import('./types').CreateStyle;

  export type create = <const T extends Record<string, CSSProperties>>(rule: CreateStyleType<T>)=> ReturnType<T>;
  export type props = (...rules: (false | CSSProperties | null | undefined)[])=> string;
  export type createTheme = <const T extends CreateTheme>(rule: T)=> ReturnVariableType<T>;
  export type createStatic = <const T extends CreateStatic>(rule: T)=> T;
  export type keyframes = (rule: Keyframes) => string;
  export type viewTransition = (rule: ViewTransition) => string;
  export type variants = <T extends Variants>(rule: T) => (props: { [K in keyof T]?: keyof T[K] }) => CSSProperties;
  export type marker = (id: string, pseudo: string) => Marker;
  export type extended = <I extends string, P extends string>(id: I, pseudo: P) => Extended<I, P>;

  export const create: create;
  export const props: props;
  export const createTheme: createTheme;
  export const createStatic: createStatic;
  export const keyframes: keyframes;
  export const viewTransition: viewTransition;
  export const variants: variants;
  export const marker: marker;
  export const extended: extended;
}

Other improvements

  • TSDocs documentation
  • Thinking in Plumeria page

Feedback Discussion and bug Issues reports are welcome on GitHub