shadimage
amplo
uifill-picker-radixsource: ok · hit

Amplo Fill Picker (Radix)

Radix/shadcn-classic entry point for the Amplo fill picker — the barrel that composes the Radix color and gradient pickers with the shared solid/gradient mode switcher (FillPicker.Root/Tabs/Tab/Pane), pulled in as registry dependencies.

npx shadcn add "https://amplo.ale.design/r/fill-picker-radix.json"
free

Visual style

gradient

Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.

Dependencies

Bundle weight · light
iconslucide-react

Registry dependencies

utilshttps://amplo.ale.design/r/color-picker-radix.jsonhttps://amplo.ale.design/r/gradient-picker-radix.jsonhttps://amplo.ale.design/r/fill-picker-engine.json

Files1 · source cached 10/9/2026, 10:19:09 PM

registry/new-york/ui/fill-picker/fill-picker.tsx
"use client";

// Re-export the gradient-picker public surface (which itself re-exports
// color-picker), so a single import point covers the whole fill-picker
// public surface: color + gradient + the fill switcher below.
export * from "./gradient-picker";
export { ColorPicker, GradientPicker } from "./gradient-picker";

import * as React from "react";
import { Root as FillRoot } from "./parts/fill/root";
import { Tabs as FillTabs, Tab as FillTab } from "./parts/fill/tabs";
import { Pane as EngineFillPane, type PaneProps } from "./parts/fill/pane";
import { GradientStopEditorContext } from "./contexts/gradient";
import { stopEditorSlot } from "./parts/gradient/stop-editor-popover";

export type { Fill, ColorFill, GradientFill } from "./lib/gradient";
export { formatFill, parseFill } from "./lib/gradient";
export { useFillPicker } from "./hooks/use-fill-picker";
export type {
  UseFillPickerProps,
  FillPickerState,
  FillMode,
} from "./hooks/use-fill-picker";

/**
 * The engine `Pane` plus this variant's stop editor. The gradient pane builds
 * its gradient state itself (it never goes through `<GradientPicker.Root>`),
 * so the editor a `<Bar editOnClick>` nested inside it needs is injected here
 * — same default the gradient barrel's `Root` injects.
 */
const FillPane = React.forwardRef<HTMLDivElement, PaneProps>(function Pane(
  props,
  ref,
) {
  return (
    <GradientStopEditorContext.Provider value={stopEditorSlot}>
      <EngineFillPane ref={ref} {...props} />
    </GradientStopEditorContext.Provider>
  );
});

export const FillPicker = {
  Root: FillRoot,
  Tabs: FillTabs,
  Tab: FillTab,
  Pane: FillPane,
};

More from amplo

Browse all components in this library →