React Router API Reference
    Preparing search index...

    Interface NavLinkProps

    interface NavLinkProps {
        about?: string;
        accessKey?: string;
        "aria-activedescendant"?: string;
        "aria-atomic"?: Booleanish;
        "aria-autocomplete"?: "none" | "list" | "inline" | "both";
        "aria-braillelabel"?: string;
        "aria-brailleroledescription"?: string;
        "aria-busy"?: Booleanish;
        "aria-checked"?: boolean | "true" | "false" | "mixed";
        "aria-colcount"?: number;
        "aria-colindex"?: number;
        "aria-colindextext"?: string;
        "aria-colspan"?: number;
        "aria-controls"?: string;
        "aria-current"?:
            | boolean
            | "time"
            | "true"
            | "page"
            | "step"
            | "false"
            | "location"
            | "date";
        "aria-describedby"?: string;
        "aria-description"?: string;
        "aria-details"?: string;
        "aria-disabled"?: Booleanish;
        "aria-dropeffect"?: "link"
        | "copy"
        | "none"
        | "execute"
        | "move"
        | "popup";
        "aria-errormessage"?: string;
        "aria-expanded"?: Booleanish;
        "aria-flowto"?: string;
        "aria-grabbed"?: Booleanish;
        "aria-haspopup"?:
            | boolean
            | "dialog"
            | "menu"
            | "true"
            | "false"
            | "grid"
            | "listbox"
            | "tree";
        "aria-hidden"?: Booleanish;
        "aria-invalid"?: boolean
        | "true"
        | "false"
        | "grammar"
        | "spelling";
        "aria-keyshortcuts"?: string;
        "aria-label"?: string;
        "aria-labelledby"?: string;
        "aria-level"?: number;
        "aria-live"?: "off" | "assertive" | "polite";
        "aria-modal"?: Booleanish;
        "aria-multiline"?: Booleanish;
        "aria-multiselectable"?: Booleanish;
        "aria-orientation"?: "horizontal" | "vertical";
        "aria-owns"?: string;
        "aria-placeholder"?: string;
        "aria-posinset"?: number;
        "aria-pressed"?: boolean | "true" | "false" | "mixed";
        "aria-readonly"?: Booleanish;
        "aria-relevant"?:
            | "text"
            | "additions"
            | "additions removals"
            | "additions text"
            | "all"
            | "removals"
            | "removals additions"
            | "removals text"
            | "text additions"
            | "text removals";
        "aria-required"?: Booleanish;
        "aria-roledescription"?: string;
        "aria-rowcount"?: number;
        "aria-rowindex"?: number;
        "aria-rowindextext"?: string;
        "aria-rowspan"?: number;
        "aria-selected"?: Booleanish;
        "aria-setsize"?: number;
        "aria-sort"?: "none"
        | "ascending"
        | "descending"
        | "other";
        "aria-valuemax"?: number;
        "aria-valuemin"?: number;
        "aria-valuenow"?: number;
        "aria-valuetext"?: string;
        autoCapitalize?: string;
        autoCorrect?: string;
        autoFocus?: boolean;
        autoSave?: string;
        caseSensitive?: boolean;
        children?: ReactNode | ((props: NavLinkRenderProps) => ReactNode);
        className?: string | ((props: NavLinkRenderProps) => undefined | string);
        color?: string;
        content?: string;
        contentEditable?: Booleanish | "inherit";
        contextMenu?: string;
        dangerouslySetInnerHTML?: { __html: string | TrustedHTML };
        datatype?: string;
        defaultChecked?: boolean;
        defaultValue?: string | number | readonly string[];
        dir?: string;
        discover?: DiscoverBehavior;
        download?: any;
        draggable?: Booleanish;
        end?: boolean;
        hidden?: boolean;
        hrefLang?: string;
        id?: string;
        inlist?: any;
        inputMode?:
            | "search"
            | "text"
            | "url"
            | "none"
            | "tel"
            | "email"
            | "numeric"
            | "decimal";
        is?: string;
        itemID?: string;
        itemProp?: string;
        itemRef?: string;
        itemScope?: boolean;
        itemType?: string;
        lang?: string;
        media?: string;
        nonce?: string;
        onAbort?: ReactEventHandler<HTMLAnchorElement>;
        onAbortCapture?: ReactEventHandler<HTMLAnchorElement>;
        onAnimationEnd?: AnimationEventHandler<HTMLAnchorElement>;
        onAnimationEndCapture?: AnimationEventHandler<HTMLAnchorElement>;
        onAnimationIteration?: AnimationEventHandler<HTMLAnchorElement>;
        onAnimationIterationCapture?: AnimationEventHandler<HTMLAnchorElement>;
        onAnimationStart?: AnimationEventHandler<HTMLAnchorElement>;
        onAnimationStartCapture?: AnimationEventHandler<HTMLAnchorElement>;
        onAuxClick?: MouseEventHandler<HTMLAnchorElement>;
        onAuxClickCapture?: MouseEventHandler<HTMLAnchorElement>;
        onBeforeInput?: FormEventHandler<HTMLAnchorElement>;
        onBeforeInputCapture?: FormEventHandler<HTMLAnchorElement>;
        onBlur?: FocusEventHandler<HTMLAnchorElement>;
        onBlurCapture?: FocusEventHandler<HTMLAnchorElement>;
        onCanPlay?: ReactEventHandler<HTMLAnchorElement>;
        onCanPlayCapture?: ReactEventHandler<HTMLAnchorElement>;
        onCanPlayThrough?: ReactEventHandler<HTMLAnchorElement>;
        onCanPlayThroughCapture?: ReactEventHandler<HTMLAnchorElement>;
        onChange?: FormEventHandler<HTMLAnchorElement>;
        onChangeCapture?: FormEventHandler<HTMLAnchorElement>;
        onClick?: MouseEventHandler<HTMLAnchorElement>;
        onClickCapture?: MouseEventHandler<HTMLAnchorElement>;
        onCompositionEnd?: CompositionEventHandler<HTMLAnchorElement>;
        onCompositionEndCapture?: CompositionEventHandler<HTMLAnchorElement>;
        onCompositionStart?: CompositionEventHandler<HTMLAnchorElement>;
        onCompositionStartCapture?: CompositionEventHandler<HTMLAnchorElement>;
        onCompositionUpdate?: CompositionEventHandler<HTMLAnchorElement>;
        onCompositionUpdateCapture?: CompositionEventHandler<HTMLAnchorElement>;
        onContextMenu?: MouseEventHandler<HTMLAnchorElement>;
        onContextMenuCapture?: MouseEventHandler<HTMLAnchorElement>;
        onCopy?: ClipboardEventHandler<HTMLAnchorElement>;
        onCopyCapture?: ClipboardEventHandler<HTMLAnchorElement>;
        onCut?: ClipboardEventHandler<HTMLAnchorElement>;
        onCutCapture?: ClipboardEventHandler<HTMLAnchorElement>;
        onDoubleClick?: MouseEventHandler<HTMLAnchorElement>;
        onDoubleClickCapture?: MouseEventHandler<HTMLAnchorElement>;
        onDrag?: DragEventHandler<HTMLAnchorElement>;
        onDragCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragEnd?: DragEventHandler<HTMLAnchorElement>;
        onDragEndCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragEnter?: DragEventHandler<HTMLAnchorElement>;
        onDragEnterCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragExit?: DragEventHandler<HTMLAnchorElement>;
        onDragExitCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragLeave?: DragEventHandler<HTMLAnchorElement>;
        onDragLeaveCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragOver?: DragEventHandler<HTMLAnchorElement>;
        onDragOverCapture?: DragEventHandler<HTMLAnchorElement>;
        onDragStart?: DragEventHandler<HTMLAnchorElement>;
        onDragStartCapture?: DragEventHandler<HTMLAnchorElement>;
        onDrop?: DragEventHandler<HTMLAnchorElement>;
        onDropCapture?: DragEventHandler<HTMLAnchorElement>;
        onDurationChange?: ReactEventHandler<HTMLAnchorElement>;
        onDurationChangeCapture?: ReactEventHandler<HTMLAnchorElement>;
        onEmptied?: ReactEventHandler<HTMLAnchorElement>;
        onEmptiedCapture?: ReactEventHandler<HTMLAnchorElement>;
        onEncrypted?: ReactEventHandler<HTMLAnchorElement>;
        onEncryptedCapture?: ReactEventHandler<HTMLAnchorElement>;
        onEnded?: ReactEventHandler<HTMLAnchorElement>;
        onEndedCapture?: ReactEventHandler<HTMLAnchorElement>;
        onError?: ReactEventHandler<HTMLAnchorElement>;
        onErrorCapture?: ReactEventHandler<HTMLAnchorElement>;
        onFocus?: FocusEventHandler<HTMLAnchorElement>;
        onFocusCapture?: FocusEventHandler<HTMLAnchorElement>;
        onGotPointerCapture?: PointerEventHandler<HTMLAnchorElement>;
        onGotPointerCaptureCapture?: PointerEventHandler<HTMLAnchorElement>;
        onInput?: FormEventHandler<HTMLAnchorElement>;
        onInputCapture?: FormEventHandler<HTMLAnchorElement>;
        onInvalid?: FormEventHandler<HTMLAnchorElement>;
        onInvalidCapture?: FormEventHandler<HTMLAnchorElement>;
        onKeyDown?: KeyboardEventHandler<HTMLAnchorElement>;
        onKeyDownCapture?: KeyboardEventHandler<HTMLAnchorElement>;
        onKeyPress?: KeyboardEventHandler<HTMLAnchorElement>;
        onKeyPressCapture?: KeyboardEventHandler<HTMLAnchorElement>;
        onKeyUp?: KeyboardEventHandler<HTMLAnchorElement>;
        onKeyUpCapture?: KeyboardEventHandler<HTMLAnchorElement>;
        onLoad?: ReactEventHandler<HTMLAnchorElement>;
        onLoadCapture?: ReactEventHandler<HTMLAnchorElement>;
        onLoadedData?: ReactEventHandler<HTMLAnchorElement>;
        onLoadedDataCapture?: ReactEventHandler<HTMLAnchorElement>;
        onLoadedMetadata?: ReactEventHandler<HTMLAnchorElement>;
        onLoadedMetadataCapture?: ReactEventHandler<HTMLAnchorElement>;
        onLoadStart?: ReactEventHandler<HTMLAnchorElement>;
        onLoadStartCapture?: ReactEventHandler<HTMLAnchorElement>;
        onLostPointerCapture?: PointerEventHandler<HTMLAnchorElement>;
        onLostPointerCaptureCapture?: PointerEventHandler<HTMLAnchorElement>;
        onMouseDown?: MouseEventHandler<HTMLAnchorElement>;
        onMouseDownCapture?: MouseEventHandler<HTMLAnchorElement>;
        onMouseEnter?: MouseEventHandler<HTMLAnchorElement>;
        onMouseLeave?: MouseEventHandler<HTMLAnchorElement>;
        onMouseMove?: MouseEventHandler<HTMLAnchorElement>;
        onMouseMoveCapture?: MouseEventHandler<HTMLAnchorElement>;
        onMouseOut?: MouseEventHandler<HTMLAnchorElement>;
        onMouseOutCapture?: MouseEventHandler<HTMLAnchorElement>;
        onMouseOver?: MouseEventHandler<HTMLAnchorElement>;
        onMouseOverCapture?: MouseEventHandler<HTMLAnchorElement>;
        onMouseUp?: MouseEventHandler<HTMLAnchorElement>;
        onMouseUpCapture?: MouseEventHandler<HTMLAnchorElement>;
        onPaste?: ClipboardEventHandler<HTMLAnchorElement>;
        onPasteCapture?: ClipboardEventHandler<HTMLAnchorElement>;
        onPause?: ReactEventHandler<HTMLAnchorElement>;
        onPauseCapture?: ReactEventHandler<HTMLAnchorElement>;
        onPlay?: ReactEventHandler<HTMLAnchorElement>;
        onPlayCapture?: ReactEventHandler<HTMLAnchorElement>;
        onPlaying?: ReactEventHandler<HTMLAnchorElement>;
        onPlayingCapture?: ReactEventHandler<HTMLAnchorElement>;
        onPointerCancel?: PointerEventHandler<HTMLAnchorElement>;
        onPointerCancelCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerDown?: PointerEventHandler<HTMLAnchorElement>;
        onPointerDownCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerEnter?: PointerEventHandler<HTMLAnchorElement>;
        onPointerEnterCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerLeave?: PointerEventHandler<HTMLAnchorElement>;
        onPointerLeaveCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerMove?: PointerEventHandler<HTMLAnchorElement>;
        onPointerMoveCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerOut?: PointerEventHandler<HTMLAnchorElement>;
        onPointerOutCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerOver?: PointerEventHandler<HTMLAnchorElement>;
        onPointerOverCapture?: PointerEventHandler<HTMLAnchorElement>;
        onPointerUp?: PointerEventHandler<HTMLAnchorElement>;
        onPointerUpCapture?: PointerEventHandler<HTMLAnchorElement>;
        onProgress?: ReactEventHandler<HTMLAnchorElement>;
        onProgressCapture?: ReactEventHandler<HTMLAnchorElement>;
        onRateChange?: ReactEventHandler<HTMLAnchorElement>;
        onRateChangeCapture?: ReactEventHandler<HTMLAnchorElement>;
        onReset?: FormEventHandler<HTMLAnchorElement>;
        onResetCapture?: FormEventHandler<HTMLAnchorElement>;
        onResize?: ReactEventHandler<HTMLAnchorElement>;
        onResizeCapture?: ReactEventHandler<HTMLAnchorElement>;
        onScroll?: UIEventHandler<HTMLAnchorElement>;
        onScrollCapture?: UIEventHandler<HTMLAnchorElement>;
        onSeeked?: ReactEventHandler<HTMLAnchorElement>;
        onSeekedCapture?: ReactEventHandler<HTMLAnchorElement>;
        onSeeking?: ReactEventHandler<HTMLAnchorElement>;
        onSeekingCapture?: ReactEventHandler<HTMLAnchorElement>;
        onSelect?: ReactEventHandler<HTMLAnchorElement>;
        onSelectCapture?: ReactEventHandler<HTMLAnchorElement>;
        onStalled?: ReactEventHandler<HTMLAnchorElement>;
        onStalledCapture?: ReactEventHandler<HTMLAnchorElement>;
        onSubmit?: FormEventHandler<HTMLAnchorElement>;
        onSubmitCapture?: FormEventHandler<HTMLAnchorElement>;
        onSuspend?: ReactEventHandler<HTMLAnchorElement>;
        onSuspendCapture?: ReactEventHandler<HTMLAnchorElement>;
        onTimeUpdate?: ReactEventHandler<HTMLAnchorElement>;
        onTimeUpdateCapture?: ReactEventHandler<HTMLAnchorElement>;
        onTouchCancel?: TouchEventHandler<HTMLAnchorElement>;
        onTouchCancelCapture?: TouchEventHandler<HTMLAnchorElement>;
        onTouchEnd?: TouchEventHandler<HTMLAnchorElement>;
        onTouchEndCapture?: TouchEventHandler<HTMLAnchorElement>;
        onTouchMove?: TouchEventHandler<HTMLAnchorElement>;
        onTouchMoveCapture?: TouchEventHandler<HTMLAnchorElement>;
        onTouchStart?: TouchEventHandler<HTMLAnchorElement>;
        onTouchStartCapture?: TouchEventHandler<HTMLAnchorElement>;
        onTransitionEnd?: TransitionEventHandler<HTMLAnchorElement>;
        onTransitionEndCapture?: TransitionEventHandler<HTMLAnchorElement>;
        onVolumeChange?: ReactEventHandler<HTMLAnchorElement>;
        onVolumeChangeCapture?: ReactEventHandler<HTMLAnchorElement>;
        onWaiting?: ReactEventHandler<HTMLAnchorElement>;
        onWaitingCapture?: ReactEventHandler<HTMLAnchorElement>;
        onWheel?: WheelEventHandler<HTMLAnchorElement>;
        onWheelCapture?: WheelEventHandler<HTMLAnchorElement>;
        ping?: string;
        placeholder?: string;
        prefetch?: PrefetchBehavior;
        prefix?: string;
        preventScrollReset?: boolean;
        property?: string;
        radioGroup?: string;
        referrerPolicy?: HTMLAttributeReferrerPolicy;
        rel?: string;
        relative?: RelativeRoutingType;
        reloadDocument?: boolean;
        replace?: boolean;
        resource?: string;
        results?: number;
        rev?: string;
        role?: AriaRole;
        security?: string;
        slot?: string;
        spellCheck?: Booleanish;
        state?: any;
        style?:
            | CSSProperties
            | ((props: NavLinkRenderProps) => undefined | CSSProperties);
        suppressContentEditableWarning?: boolean;
        suppressHydrationWarning?: boolean;
        tabIndex?: number;
        target?: HTMLAttributeAnchorTarget;
        title?: string;
        to: To;
        translate?: "yes" | "no";
        type?: string;
        typeof?: string;
        unselectable?: "on" | "off";
        unstable_defaultShouldRevalidate?: boolean;
        viewTransition?: boolean;
        vocab?: string;
    }

    Hierarchy

    • Omit<LinkProps, "className" | "style" | "children">
      • NavLinkProps
    Index

    Properties

    about? accessKey? aria-activedescendant? aria-atomic? aria-autocomplete? aria-braillelabel? aria-brailleroledescription? aria-busy? aria-checked? aria-colcount? aria-colindex? aria-colindextext? aria-colspan? aria-controls? aria-current? aria-describedby? aria-description? aria-details? aria-disabled? aria-dropeffect? aria-errormessage? aria-expanded? aria-flowto? aria-grabbed? aria-haspopup? aria-hidden? aria-invalid? aria-keyshortcuts? aria-label? aria-labelledby? aria-level? aria-live? aria-modal? aria-multiline? aria-multiselectable? aria-orientation? aria-owns? aria-placeholder? aria-posinset? aria-pressed? aria-readonly? aria-relevant? aria-required? aria-roledescription? aria-rowcount? aria-rowindex? aria-rowindextext? aria-rowspan? aria-selected? aria-setsize? aria-sort? aria-valuemax? aria-valuemin? aria-valuenow? aria-valuetext? autoCapitalize? autoCorrect? autoFocus? autoSave? caseSensitive? children? className? color? content? contentEditable? contextMenu? dangerouslySetInnerHTML? datatype? defaultChecked? defaultValue? dir? discover? download? draggable? end? hidden? hrefLang? id? inlist? inputMode? is? itemID? itemProp? itemRef? itemScope? itemType? lang? media? nonce? onAbort? onAbortCapture? onAnimationEnd? onAnimationEndCapture? onAnimationIteration? onAnimationIterationCapture? onAnimationStart? onAnimationStartCapture? onAuxClick? onAuxClickCapture? onBeforeInput? onBeforeInputCapture? onBlur? onBlurCapture? onCanPlay? onCanPlayCapture? onCanPlayThrough? onCanPlayThroughCapture? onChange? onChangeCapture? onClick? onClickCapture? onCompositionEnd? onCompositionEndCapture? onCompositionStart? onCompositionStartCapture? onCompositionUpdate? onCompositionUpdateCapture? onContextMenu? onContextMenuCapture? onCopy? onCopyCapture? onCut? onCutCapture? onDoubleClick? onDoubleClickCapture? onDrag? onDragCapture? onDragEnd? onDragEndCapture? onDragEnter? onDragEnterCapture? onDragExit? onDragExitCapture? onDragLeave? onDragLeaveCapture? onDragOver? onDragOverCapture? onDragStart? onDragStartCapture? onDrop? onDropCapture? onDurationChange? onDurationChangeCapture? onEmptied? onEmptiedCapture? onEncrypted? onEncryptedCapture? onEnded? onEndedCapture? onError? onErrorCapture? onFocus? onFocusCapture? onGotPointerCapture? onGotPointerCaptureCapture? onInput? onInputCapture? onInvalid? onInvalidCapture? onKeyDown? onKeyDownCapture? onKeyPress? onKeyPressCapture? onKeyUp? onKeyUpCapture? onLoad? onLoadCapture? onLoadedData? onLoadedDataCapture? onLoadedMetadata? onLoadedMetadataCapture? onLoadStart? onLoadStartCapture? onLostPointerCapture? onLostPointerCaptureCapture? onMouseDown? onMouseDownCapture? onMouseEnter? onMouseLeave? onMouseMove? onMouseMoveCapture? onMouseOut? onMouseOutCapture? onMouseOver? onMouseOverCapture? onMouseUp? onMouseUpCapture? onPaste? onPasteCapture? onPause? onPauseCapture? onPlay? onPlayCapture? onPlaying? onPlayingCapture? onPointerCancel? onPointerCancelCapture? onPointerDown? onPointerDownCapture? onPointerEnter? onPointerEnterCapture? onPointerLeave? onPointerLeaveCapture? onPointerMove? onPointerMoveCapture? onPointerOut? onPointerOutCapture? onPointerOver? onPointerOverCapture? onPointerUp? onPointerUpCapture? onProgress? onProgressCapture? onRateChange? onRateChangeCapture? onReset? onResetCapture? onResize? onResizeCapture? onScroll? onScrollCapture? onSeeked? onSeekedCapture? onSeeking? onSeekingCapture? onSelect? onSelectCapture? onStalled? onStalledCapture? onSubmit? onSubmitCapture? onSuspend? onSuspendCapture? onTimeUpdate? onTimeUpdateCapture? onTouchCancel? onTouchCancelCapture? onTouchEnd? onTouchEndCapture? onTouchMove? onTouchMoveCapture? onTouchStart? onTouchStartCapture? onTransitionEnd? onTransitionEndCapture? onVolumeChange? onVolumeChangeCapture? onWaiting? onWaitingCapture? onWheel? onWheelCapture? ping? placeholder? prefetch? prefix? preventScrollReset? property? radioGroup? referrerPolicy? rel? relative? reloadDocument? replace? resource? results? rev? role? security? slot? spellCheck? state? style? suppressContentEditableWarning? suppressHydrationWarning? tabIndex? target? title? to translate? type? typeof? unselectable? unstable_defaultShouldRevalidate? viewTransition? vocab?

    Properties

    about?: string
    accessKey?: string
    "aria-activedescendant"?: string

    Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.

    "aria-atomic"?: Booleanish

    Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.

    "aria-autocomplete"?: "none" | "list" | "inline" | "both"

    Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.

    "aria-braillelabel"?: string

    Defines a string value that labels the current element, which is intended to be converted into Braille.

    aria-label.

    "aria-brailleroledescription"?: string

    Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.

    aria-roledescription.

    "aria-busy"?: Booleanish
    "aria-checked"?: boolean | "true" | "false" | "mixed"

    Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.

    • aria-pressed
    • aria-selected.
    "aria-colcount"?: number

    Defines the total number of columns in a table, grid, or treegrid.

    aria-colindex.

    "aria-colindex"?: number

    Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.

    • aria-colcount
    • aria-colspan.
    "aria-colindextext"?: string

    Defines a human readable text alternative of aria-colindex.

    aria-rowindextext.

    "aria-colspan"?: number

    Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.

    • aria-colindex
    • aria-rowspan.
    "aria-controls"?: string

    Identifies the element (or elements) whose contents or presence are controlled by the current element.

    aria-owns.

    "aria-current"?:
        | boolean
        | "time"
        | "true"
        | "page"
        | "step"
        | "false"
        | "location"
        | "date"

    Indicates the element that represents the current item within a container or set of related elements.

    "aria-describedby"?: string

    Identifies the element (or elements) that describes the object.

    aria-labelledby

    "aria-description"?: string

    Defines a string value that describes or annotates the current element.

    related aria-describedby.

    "aria-details"?: string

    Identifies the element that provides a detailed, extended description for the object.

    aria-describedby.

    "aria-disabled"?: Booleanish

    Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.

    • aria-hidden
    • aria-readonly.
    "aria-dropeffect"?: "link" | "copy" | "none" | "execute" | "move" | "popup"

    Indicates what functions can be performed when a dragged object is released on the drop target.

    in ARIA 1.1

    "aria-errormessage"?: string

    Identifies the element that provides an error message for the object.

    • aria-invalid
    • aria-describedby.
    "aria-expanded"?: Booleanish

    Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.

    "aria-flowto"?: string

    Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.

    "aria-grabbed"?: Booleanish

    Indicates an element's "grabbed" state in a drag-and-drop operation.

    in ARIA 1.1

    "aria-haspopup"?:
        | boolean
        | "dialog"
        | "menu"
        | "true"
        | "false"
        | "grid"
        | "listbox"
        | "tree"

    Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.

    "aria-hidden"?: Booleanish

    Indicates whether the element is exposed to an accessibility API.

    aria-disabled.

    "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling"

    Indicates the entered value does not conform to the format expected by the application.

    aria-errormessage.

    "aria-keyshortcuts"?: string

    Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.

    "aria-label"?: string

    Defines a string value that labels the current element.

    aria-labelledby.

    "aria-labelledby"?: string

    Identifies the element (or elements) that labels the current element.

    aria-describedby.

    "aria-level"?: number

    Defines the hierarchical level of an element within a structure.

    "aria-live"?: "off" | "assertive" | "polite"

    Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.

    "aria-modal"?: Booleanish

    Indicates whether an element is modal when displayed.

    "aria-multiline"?: Booleanish

    Indicates whether a text box accepts multiple lines of input or only a single line.

    "aria-multiselectable"?: Booleanish

    Indicates that the user may select more than one item from the current selectable descendants.

    "aria-orientation"?: "horizontal" | "vertical"

    Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.

    "aria-owns"?: string

    Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship.

    aria-controls.

    "aria-placeholder"?: string

    Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.

    "aria-posinset"?: number

    Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.

    aria-setsize.

    "aria-pressed"?: boolean | "true" | "false" | "mixed"

    Indicates the current "pressed" state of toggle buttons.

    • aria-checked
    • aria-selected.
    "aria-readonly"?: Booleanish

    Indicates that the element is not editable, but is otherwise operable.

    aria-disabled.

    "aria-relevant"?:
        | "text"
        | "additions"
        | "additions removals"
        | "additions text"
        | "all"
        | "removals"
        | "removals additions"
        | "removals text"
        | "text additions"
        | "text removals"

    Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.

    aria-atomic.

    "aria-required"?: Booleanish

    Indicates that user input is required on the element before a form may be submitted.

    "aria-roledescription"?: string

    Defines a human-readable, author-localized description for the role of an element.

    "aria-rowcount"?: number

    Defines the total number of rows in a table, grid, or treegrid.

    aria-rowindex.

    "aria-rowindex"?: number

    Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.

    • aria-rowcount
    • aria-rowspan.
    "aria-rowindextext"?: string

    Defines a human readable text alternative of aria-rowindex.

    aria-colindextext.

    "aria-rowspan"?: number

    Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.

    • aria-rowindex
    • aria-colspan.
    "aria-selected"?: Booleanish

    Indicates the current "selected" state of various widgets.

    • aria-checked
    • aria-pressed.
    "aria-setsize"?: number

    Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.

    aria-posinset.

    "aria-sort"?: "none" | "ascending" | "descending" | "other"

    Indicates if items in a table or grid are sorted in ascending or descending order.

    "aria-valuemax"?: number

    Defines the maximum allowed value for a range widget.

    "aria-valuemin"?: number

    Defines the minimum allowed value for a range widget.

    "aria-valuenow"?: number

    Defines the current value for a range widget.

    aria-valuetext.

    "aria-valuetext"?: string

    Defines the human readable text alternative of aria-valuenow for a range widget.

    autoCapitalize?: string
    autoCorrect?: string
    autoFocus?: boolean
    autoSave?: string
    caseSensitive?: boolean

    Changes the matching logic to make it case-sensitive:

    Link URL isActive
    <NavLink to="/SpOnGe-bOB" /> /sponge-bob true
    <NavLink to="/SpOnGe-bOB" caseSensitive /> /sponge-bob false
    children?: ReactNode | ((props: NavLinkRenderProps) => ReactNode)

    Can be regular React children or a function that receives an object with the active and pending states of the link.

    <NavLink to="/tasks">
    {({ isActive }) => (
    <span className={isActive ? "active" : ""}>Tasks</span>
    )}
    </NavLink>
    className?: string | ((props: NavLinkRenderProps) => undefined | string)

    Classes are automatically applied to NavLink that correspond to the state.

    a.active {
    color: red;
    }
    a.pending {
    color: blue;
    }
    a.transitioning {
    view-transition-name: my-transition;
    }

    Or you can specify a function that receives NavLinkRenderProps and returns the className:

    <NavLink className={({ isActive, isPending }) => (
    isActive ? "my-active-class" :
    isPending ? "my-pending-class" :
    ""
    )} />
    color?: string
    content?: string
    contentEditable?: Booleanish | "inherit"
    contextMenu?: string
    dangerouslySetInnerHTML?: { __html: string | TrustedHTML }
    datatype?: string
    defaultChecked?: boolean
    defaultValue?: string | number | readonly string[]
    dir?: string
    discover?: DiscoverBehavior

    Defines the link lazy route discovery behavior.

    • render — default, discover the route when the link renders
    • none — don't eagerly discover, only discover if the link is clicked
    <Link /> // default ("render")
    <Link discover="render" />
    <Link discover="none" />
    download?: any
    draggable?: Booleanish
    end?: boolean

    Changes the matching logic for the active and pending states to only match to the "end" of the NavLinkProps.to. If the URL is longer, it will no longer be considered active.

    Link URL isActive
    <NavLink to="/tasks" /> /tasks true
    <NavLink to="/tasks" /> /tasks/123 true
    <NavLink to="/tasks" end /> /tasks true
    <NavLink to="/tasks" end /> /tasks/123 false

    <NavLink to="/"> is an exceptional case because every URL matches /. To avoid this matching every single route by default, it effectively ignores the end prop and only matches when you're at the root route.

    hidden?: boolean
    hrefLang?: string
    id?: string
    inlist?: any
    inputMode?:
        | "search"
        | "text"
        | "url"
        | "none"
        | "tel"
        | "email"
        | "numeric"
        | "decimal"

    Hints at the type of data that might be entered by the user while editing the element or its contents

    is?: string

    Specify that a standard HTML element should behave like a defined custom built-in element

    itemID?: string
    itemProp?: string
    itemRef?: string
    itemScope?: boolean
    itemType?: string
    lang?: string
    media?: string
    nonce?: string
    onAbort?: ReactEventHandler<HTMLAnchorElement>
    onAbortCapture?: ReactEventHandler<HTMLAnchorElement>
    onAnimationEnd?: AnimationEventHandler<HTMLAnchorElement>
    onAnimationEndCapture?: AnimationEventHandler<HTMLAnchorElement>
    onAnimationIteration?: AnimationEventHandler<HTMLAnchorElement>
    onAnimationIterationCapture?: AnimationEventHandler<HTMLAnchorElement>
    onAnimationStart?: AnimationEventHandler<HTMLAnchorElement>
    onAnimationStartCapture?: AnimationEventHandler<HTMLAnchorElement>
    onAuxClick?: MouseEventHandler<HTMLAnchorElement>
    onAuxClickCapture?: MouseEventHandler<HTMLAnchorElement>
    onBeforeInput?: FormEventHandler<HTMLAnchorElement>
    onBeforeInputCapture?: FormEventHandler<HTMLAnchorElement>
    onBlur?: FocusEventHandler<HTMLAnchorElement>
    onBlurCapture?: FocusEventHandler<HTMLAnchorElement>
    onCanPlay?: ReactEventHandler<HTMLAnchorElement>
    onCanPlayCapture?: ReactEventHandler<HTMLAnchorElement>
    onCanPlayThrough?: ReactEventHandler<HTMLAnchorElement>
    onCanPlayThroughCapture?: ReactEventHandler<HTMLAnchorElement>
    onChange?: FormEventHandler<HTMLAnchorElement>
    onChangeCapture?: FormEventHandler<HTMLAnchorElement>
    onClick?: MouseEventHandler<HTMLAnchorElement>
    onClickCapture?: MouseEventHandler<HTMLAnchorElement>
    onCompositionEnd?: CompositionEventHandler<HTMLAnchorElement>
    onCompositionEndCapture?: CompositionEventHandler<HTMLAnchorElement>
    onCompositionStart?: CompositionEventHandler<HTMLAnchorElement>
    onCompositionStartCapture?: CompositionEventHandler<HTMLAnchorElement>
    onCompositionUpdate?: CompositionEventHandler<HTMLAnchorElement>
    onCompositionUpdateCapture?: CompositionEventHandler<HTMLAnchorElement>
    onContextMenu?: MouseEventHandler<HTMLAnchorElement>
    onContextMenuCapture?: MouseEventHandler<HTMLAnchorElement>
    onCopy?: ClipboardEventHandler<HTMLAnchorElement>
    onCopyCapture?: ClipboardEventHandler<HTMLAnchorElement>
    onCut?: ClipboardEventHandler<HTMLAnchorElement>
    onCutCapture?: ClipboardEventHandler<HTMLAnchorElement>
    onDoubleClick?: MouseEventHandler<HTMLAnchorElement>
    onDoubleClickCapture?: MouseEventHandler<HTMLAnchorElement>
    onDrag?: DragEventHandler<HTMLAnchorElement>
    onDragCapture?: DragEventHandler<HTMLAnchorElement>
    onDragEnd?: DragEventHandler<HTMLAnchorElement>
    onDragEndCapture?: DragEventHandler<HTMLAnchorElement>
    onDragEnter?: DragEventHandler<HTMLAnchorElement>
    onDragEnterCapture?: DragEventHandler<HTMLAnchorElement>
    onDragExit?: DragEventHandler<HTMLAnchorElement>
    onDragExitCapture?: DragEventHandler<HTMLAnchorElement>
    onDragLeave?: DragEventHandler<HTMLAnchorElement>
    onDragLeaveCapture?: DragEventHandler<HTMLAnchorElement>
    onDragOver?: DragEventHandler<HTMLAnchorElement>
    onDragOverCapture?: DragEventHandler<HTMLAnchorElement>
    onDragStart?: DragEventHandler<HTMLAnchorElement>
    onDragStartCapture?: DragEventHandler<HTMLAnchorElement>
    onDrop?: DragEventHandler<HTMLAnchorElement>
    onDropCapture?: DragEventHandler<HTMLAnchorElement>
    onDurationChange?: ReactEventHandler<HTMLAnchorElement>
    onDurationChangeCapture?: ReactEventHandler<HTMLAnchorElement>
    onEmptied?: ReactEventHandler<HTMLAnchorElement>
    onEmptiedCapture?: ReactEventHandler<HTMLAnchorElement>
    onEncrypted?: ReactEventHandler<HTMLAnchorElement>
    onEncryptedCapture?: ReactEventHandler<HTMLAnchorElement>
    onEnded?: ReactEventHandler<HTMLAnchorElement>
    onEndedCapture?: ReactEventHandler<HTMLAnchorElement>
    onError?: ReactEventHandler<HTMLAnchorElement>
    onErrorCapture?: ReactEventHandler<HTMLAnchorElement>
    onFocus?: FocusEventHandler<HTMLAnchorElement>
    onFocusCapture?: FocusEventHandler<HTMLAnchorElement>
    onGotPointerCapture?: PointerEventHandler<HTMLAnchorElement>
    onGotPointerCaptureCapture?: PointerEventHandler<HTMLAnchorElement>
    onInput?: FormEventHandler<HTMLAnchorElement>
    onInputCapture?: FormEventHandler<HTMLAnchorElement>
    onInvalid?: FormEventHandler<HTMLAnchorElement>
    onInvalidCapture?: FormEventHandler<HTMLAnchorElement>
    onKeyDown?: KeyboardEventHandler<HTMLAnchorElement>
    onKeyDownCapture?: KeyboardEventHandler<HTMLAnchorElement>
    onKeyPress?: KeyboardEventHandler<HTMLAnchorElement>
    onKeyPressCapture?: KeyboardEventHandler<HTMLAnchorElement>
    onKeyUp?: KeyboardEventHandler<HTMLAnchorElement>
    onKeyUpCapture?: KeyboardEventHandler<HTMLAnchorElement>
    onLoad?: ReactEventHandler<HTMLAnchorElement>
    onLoadCapture?: ReactEventHandler<HTMLAnchorElement>
    onLoadedData?: ReactEventHandler<HTMLAnchorElement>
    onLoadedDataCapture?: ReactEventHandler<HTMLAnchorElement>
    onLoadedMetadata?: ReactEventHandler<HTMLAnchorElement>
    onLoadedMetadataCapture?: ReactEventHandler<HTMLAnchorElement>
    onLoadStart?: ReactEventHandler<HTMLAnchorElement>
    onLoadStartCapture?: ReactEventHandler<HTMLAnchorElement>
    onLostPointerCapture?: PointerEventHandler<HTMLAnchorElement>
    onLostPointerCaptureCapture?: PointerEventHandler<HTMLAnchorElement>
    onMouseDown?: MouseEventHandler<HTMLAnchorElement>
    onMouseDownCapture?: MouseEventHandler<HTMLAnchorElement>
    onMouseEnter?: MouseEventHandler<HTMLAnchorElement>
    onMouseLeave?: MouseEventHandler<HTMLAnchorElement>
    onMouseMove?: MouseEventHandler<HTMLAnchorElement>
    onMouseMoveCapture?: MouseEventHandler<HTMLAnchorElement>
    onMouseOut?: MouseEventHandler<HTMLAnchorElement>
    onMouseOutCapture?: MouseEventHandler<HTMLAnchorElement>
    onMouseOver?: MouseEventHandler<HTMLAnchorElement>
    onMouseOverCapture?: MouseEventHandler<HTMLAnchorElement>
    onMouseUp?: MouseEventHandler<HTMLAnchorElement>
    onMouseUpCapture?: MouseEventHandler<HTMLAnchorElement>
    onPaste?: ClipboardEventHandler<HTMLAnchorElement>
    onPasteCapture?: ClipboardEventHandler<HTMLAnchorElement>
    onPause?: ReactEventHandler<HTMLAnchorElement>
    onPauseCapture?: ReactEventHandler<HTMLAnchorElement>
    onPlay?: ReactEventHandler<HTMLAnchorElement>
    onPlayCapture?: ReactEventHandler<HTMLAnchorElement>
    onPlaying?: ReactEventHandler<HTMLAnchorElement>
    onPlayingCapture?: ReactEventHandler<HTMLAnchorElement>
    onPointerCancel?: PointerEventHandler<HTMLAnchorElement>
    onPointerCancelCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerDown?: PointerEventHandler<HTMLAnchorElement>
    onPointerDownCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerEnter?: PointerEventHandler<HTMLAnchorElement>
    onPointerEnterCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerLeave?: PointerEventHandler<HTMLAnchorElement>
    onPointerLeaveCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerMove?: PointerEventHandler<HTMLAnchorElement>
    onPointerMoveCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerOut?: PointerEventHandler<HTMLAnchorElement>
    onPointerOutCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerOver?: PointerEventHandler<HTMLAnchorElement>
    onPointerOverCapture?: PointerEventHandler<HTMLAnchorElement>
    onPointerUp?: PointerEventHandler<HTMLAnchorElement>
    onPointerUpCapture?: PointerEventHandler<HTMLAnchorElement>
    onProgress?: ReactEventHandler<HTMLAnchorElement>
    onProgressCapture?: ReactEventHandler<HTMLAnchorElement>
    onRateChange?: ReactEventHandler<HTMLAnchorElement>
    onRateChangeCapture?: ReactEventHandler<HTMLAnchorElement>
    onReset?: FormEventHandler<HTMLAnchorElement>
    onResetCapture?: FormEventHandler<HTMLAnchorElement>
    onResize?: ReactEventHandler<HTMLAnchorElement>
    onResizeCapture?: ReactEventHandler<HTMLAnchorElement>
    onScroll?: UIEventHandler<HTMLAnchorElement>
    onScrollCapture?: UIEventHandler<HTMLAnchorElement>
    onSeeked?: ReactEventHandler<HTMLAnchorElement>
    onSeekedCapture?: ReactEventHandler<HTMLAnchorElement>
    onSeeking?: ReactEventHandler<HTMLAnchorElement>
    onSeekingCapture?: ReactEventHandler<HTMLAnchorElement>
    onSelect?: ReactEventHandler<HTMLAnchorElement>
    onSelectCapture?: ReactEventHandler<HTMLAnchorElement>
    onStalled?: ReactEventHandler<HTMLAnchorElement>
    onStalledCapture?: ReactEventHandler<HTMLAnchorElement>
    onSubmit?: FormEventHandler<HTMLAnchorElement>
    onSubmitCapture?: FormEventHandler<HTMLAnchorElement>
    onSuspend?: ReactEventHandler<HTMLAnchorElement>
    onSuspendCapture?: ReactEventHandler<HTMLAnchorElement>
    onTimeUpdate?: ReactEventHandler<HTMLAnchorElement>
    onTimeUpdateCapture?: ReactEventHandler<HTMLAnchorElement>
    onTouchCancel?: TouchEventHandler<HTMLAnchorElement>
    onTouchCancelCapture?: TouchEventHandler<HTMLAnchorElement>
    onTouchEnd?: TouchEventHandler<HTMLAnchorElement>
    onTouchEndCapture?: TouchEventHandler<HTMLAnchorElement>
    onTouchMove?: TouchEventHandler<HTMLAnchorElement>
    onTouchMoveCapture?: TouchEventHandler<HTMLAnchorElement>
    onTouchStart?: TouchEventHandler<HTMLAnchorElement>
    onTouchStartCapture?: TouchEventHandler<HTMLAnchorElement>
    onTransitionEnd?: TransitionEventHandler<HTMLAnchorElement>
    onTransitionEndCapture?: TransitionEventHandler<HTMLAnchorElement>
    onVolumeChange?: ReactEventHandler<HTMLAnchorElement>
    onVolumeChangeCapture?: ReactEventHandler<HTMLAnchorElement>
    onWaiting?: ReactEventHandler<HTMLAnchorElement>
    onWaitingCapture?: ReactEventHandler<HTMLAnchorElement>
    onWheel?: WheelEventHandler<HTMLAnchorElement>
    onWheelCapture?: WheelEventHandler<HTMLAnchorElement>
    ping?: string
    placeholder?: string
    prefetch?: PrefetchBehavior

    Defines the data and module prefetching behavior for the link.

    <Link /> // default
    <Link prefetch="none" />
    <Link prefetch="intent" />
    <Link prefetch="render" />
    <Link prefetch="viewport" />
    • none — default, no prefetching
    • intent — prefetches when the user hovers or focuses the link
    • render — prefetches when the link renders
    • viewport — prefetches when the link is in the viewport, very useful for mobile

    Prefetching is done with HTML <link rel="prefetch"> tags. They are inserted after the link.

    <a href="..." />
    <a href="..." />
    <link rel="prefetch" /> // might conditionally render

    Because of this, if you are using nav :last-child you will need to use nav :last-of-type so the styles don't conditionally fall off your last link (and any other similar selectors).

    prefix?: string
    preventScrollReset?: boolean

    Prevents the scroll position from being reset to the top of the window when the link is clicked and the app is using ScrollRestoration. This only prevents new locations resetting scroll to the top, scroll position will be restored for back/forward button navigation.

    <Link to="?tab=one" preventScrollReset />
    
    property?: string
    radioGroup?: string
    referrerPolicy?: HTMLAttributeReferrerPolicy
    rel?: string

    Defines the relative path behavior for the link.

    <Link to=".." /> // default: "route"
    <Link relative="route" />
    <Link relative="path" />

    Consider a route hierarchy where a parent route pattern is "blog" and a child route pattern is "blog/:slug/edit".

    • route — default, resolves the link relative to the route pattern. In the example above, a relative link of "..." will remove both :slug/edit segments back to "/blog".
    • path — relative to the path so "..." will only remove one URL segment up to "/blog/:slug"

    Note that index routes and layout routes do not have paths so they are not included in the relative path calculation.

    reloadDocument?: boolean

    Will use document navigation instead of client side routing when the link is clicked: the browser will handle the transition normally (as if it were an <a href>).

    <Link to="/logout" reloadDocument />
    
    replace?: boolean

    Replaces the current entry in the History stack instead of pushing a new one onto it.

    <Link replace />
    
    # with a history stack like this
    A -> B

    # normal link click pushes a new entry
    A -> B -> C

    # but with `replace`, B is replaced by C
    A -> C
    resource?: string
    results?: number
    rev?: string
    role?: AriaRole
    security?: string
    slot?: string
    spellCheck?: Booleanish
    state?: any

    Adds persistent client side routing state to the next location.

    <Link to="/somewhere/else" state={{ some: "value" }} />
    

    The location state is accessed from the location.

    function SomeComp() {
    const location = useLocation();
    location.state; // { some: "value" }
    }

    This state is inaccessible on the server as it is implemented on top of history.state

    style?:
        | CSSProperties
        | ((props: NavLinkRenderProps) => undefined | CSSProperties)

    Styles can also be applied dynamically via a function that receives NavLinkRenderProps and returns the styles:

    <NavLink to="/tasks" style={{ color: "red" }} />
    <NavLink to="/tasks" style={({ isActive, isPending }) => ({
    color:
    isActive ? "red" :
    isPending ? "blue" : "black"
    })} />
    suppressContentEditableWarning?: boolean
    suppressHydrationWarning?: boolean
    tabIndex?: number
    target?: HTMLAttributeAnchorTarget
    title?: string
    to: To

    Can be a string or a partial Path:

    <Link to="/some/path" />

    <Link
    to={{
    pathname: "/some/path",
    search: "?query=string",
    hash: "#hash",
    }}
    />
    translate?: "yes" | "no"
    type?: string
    typeof?: string
    unselectable?: "on" | "off"
    unstable_defaultShouldRevalidate?: boolean

    Specify the default revalidation behavior for the navigation.

    <Link to="/some/path" unstable_defaultShouldRevalidate={false} />
    

    If no shouldRevalidate functions are present on the active routes, then this value will be used directly. Otherwise it will be passed into shouldRevalidate so the route can make the final determination on revalidation. This can be useful when updating search params and you don't want to trigger a revalidation.

    By default (when not specified), loaders will revalidate according to the routers standard revalidation behavior.

    viewTransition?: boolean

    Enables a View Transition for this navigation.

    
      Click me
    
    

    To apply specific styles for the transition, see useViewTransitionState

    vocab?: string