DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/material__notched-outline package

14.0.0 • Public • Published

Notched Outline

The notched outline is a border around all sides of either a Text Field or Select component. This is used for the Outlined variant of either a Text Field or Select.

Design & API Documentation


npm install @material/notched-outline

Basic Usage

HTML Structure

<span class="mdc-notched-outline">
  <span class="mdc-notched-outline__leading"></span>
  <span class="mdc-notched-outline__notch">
    <span class="mdc-floating-label">Label</span>
  <span class="mdc-notched-outline__trailing"></span>

Note that the MDC Floating Label component is placed inside the notch element when used together with MDC Notched Outline.

See the MDC Text Field and MDC Select documentation for information on using Notched Outline in the context of those components.


@use "@material/notched-outline/mdc-notched-outline";

JavaScript Instantiation

import {MDCNotchedOutline} from '@material/notched-outline';

const notchedOutline = new MDCNotchedOutline(document.querySelector('.mdc-notched-outline'));

See Importing the JS component for more information on how to import JavaScript.

Style Customization

CSS Classes

CSS Class Description
mdc-notched-outline Mandatory. Container for the outline's sides and notch.
mdc-notched-outline--notched Modifier class to open the notched outline.
mdc-notched-outline--no-label Modifier class to use when the floating label is empty or not used.
mdc-notched-outline__leading Mandatory. Element representing the leading side of the notched outline (before the notch).
mdc-notched-outline__notch Mandatory. Element representing the notch.
mdc-notched-outline__trailing Mandatory. Element representing the trailing side of the notched outline (after the notch).

Sass Mixins

Mixin Description
color($color) Customizes the border color of the notched outline.
stroke-width($width) Changes notched outline width to a specified pixel value.
shape-radius($radius, $rtl-reflexive) Sets the rounded shape to notched outline element with given radius size. Set $rtl-reflexive to true to flip radius values in RTL context, defaults to false.
floating-label-float-position($positionY, $positionX, $scale) Sets the position and scale of the floating label inside the notched outline.

MDCNotchedOutline Properties and Methods

Method Signature Description
notch(notchWidth: number) => void Opens the notch with the specified width.
closeNotch() => void Closes the notch, rendering a full outline.

Usage Within Frameworks

If you are using a JavaScript framework, such as React or Angular, you can create a Notched Outline for your framework. Depending on your needs, you can use the Simple Approach: Wrapping MDC Web Vanilla Components, or the Advanced Approach: Using Foundations and Adapters. Please follow the instructions here.


Method Signature Description
addClass(className: string) => void Adds a class to the notched outline element.
removeClass(className: string) => void Removes a class from the notched outline element.
setNotchWidthProperty(width: number) => void Sets the width of the notch in pixels.
removeNotchWidthProperty() => void Removes the width property from the notch element.


Method Signature Description
notch(notchWidth: number) => void Adds the mdc-notched-outline--notched class and updates the notch element's style based on notchWidth.
closeNotch() => void Removes the mdc-notched-outline--notched class.


npm i @material/notched-outline

DownloadsWeekly Downloads






Unpacked Size

210 kB

Total Files


Last publish


  • yefim
  • abhiomkar
  • azakus
  • bicknellr
  • material-admin
  • aprigogin
  • patrickrodee
  • aomarks
  • emarquez
  • esgonzalez
  • asyncliz
  • candysonya
  • ssuarez
  • taylorv