amplo
uifill-pickersource: ok · hit
Amplo Fill Picker
Color + gradient + the solid/gradient mode switcher (FillPicker.Root/Tabs/Tab/Pane) — the "give me everything" entry point, Base UI variant. Pulls the Base UI color and gradient pickers plus the shared fill switcher parts as registry dependencies.
npx shadcn add "https://amplo.ale.design/r/fill-picker.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 · lightui-primitives@base-ui/react
iconslucide-react
Registry dependencies
utilshttps://amplo.ale.design/r/gradient-picker.jsonhttps://amplo.ale.design/r/fill-picker-engine.json
Files1 · source cached 10/9/2026, 3:01:41 AM
registry/new-york/ui/fill-picker-base/fill.tsx
"use client";
// Re-export the Base UI gradient-picker public surface (which itself
// re-exports the Base UI color-picker), so a single import point covers
// the whole Base UI fill-picker public surface: color + gradient + the
// fill switcher below.
export * from "./gradient";
export { ColorPickerBase, GradientPickerBase } from "./gradient";
// Root/Tabs/Tab/Pane are plain markup (role="tablist"/"tab", no Radix
// primitive underneath) — reused unmodified from the original.
import * as React from "react";
import { Root as FillRoot } from "@/registry/new-york/ui/fill-picker/parts/fill/root";
import { Tabs as FillTabs, Tab as FillTab } from "@/registry/new-york/ui/fill-picker/parts/fill/tabs";
import {
Pane as EngineFillPane,
type PaneProps,
} from "@/registry/new-york/ui/fill-picker/parts/fill/pane";
import { GradientStopEditorContext } from "@/registry/new-york/ui/fill-picker/contexts/gradient";
import { stopEditorSlot } from "./parts/gradient/stop-editor";
export type { Fill, ColorFill, GradientFill } from "@/registry/new-york/ui/fill-picker/lib/gradient";
export { formatFill, parseFill } from "@/registry/new-york/ui/fill-picker/lib/gradient";
export { useFillPicker } from "@/registry/new-york/ui/fill-picker/hooks/use-fill-picker";
export type {
UseFillPickerProps,
FillPickerState,
FillMode,
} from "@/registry/new-york/ui/fill-picker/hooks/use-fill-picker";
/**
* The engine `Pane` plus this variant's stop editor: the gradient pane owns
* its gradient state directly (never via `<GradientPickerBase.Root>`), so a
* `<Bar editOnClick>` nested inside it gets its editor from here.
*/
const FillPane = React.forwardRef<HTMLDivElement, PaneProps>(function Pane(
props,
ref,
) {
return (
<GradientStopEditorContext.Provider value={stopEditorSlot}>
<EngineFillPane ref={ref} {...props} />
</GradientStopEditorContext.Provider>
);
});
export const FillPickerBase = {
Root: FillRoot,
Tabs: FillTabs,
Tab: FillTab,
Pane: FillPane,
};
// Plain-name alias — see `GradientPicker` / `ColorPicker` in gradient.tsx.
export const FillPicker = FillPickerBase;