Shape

Shape

The Material Design 3 shape system uses a size-based scale with ten styles (We did not implement shape-full because shape-full requires a large value, such as 9999px, which would break the element’s transition):

CornerValue
none0px
extra-small4px
small8px
medium12px
large16px
large-increased20px
extra-large28px
extra-large-increased32px
extra-extra-large48px

Each style provides a different orientation:

  • t
  • r
  • b
  • l
  • tl
  • tr
  • bl
  • br

For a detailed description of M3 Shape, see Definition of M3 Shape.

Import

For CSS

@import "@sandlada/material-design-css/shape-utilities.css";

For TailwindCSS v4

@import "@sandlada/material-design-css/tailwind-theme.css";

Usage

<div class="flex">
    <div class="box rounded-none bg-primary"></div>
    <div class="box rounded-extra-small bg-primary"></div>
    <div class="box rounded-small bg-primary"></div>
    <div class="box rounded-medium bg-primary"></div>
    <div class="box rounded-large bg-primary"></div>
    <div class="box rounded-large-increased bg-primary"></div>
    <div class="box rounded-extra-large bg-primary"></div>
    <div class="box rounded-extra-large-increased bg-primary"></div>
    <div class="box rounded-extra-extra-large bg-primary"></div>
</div>

<style>
    .box {
        height: 96px;
        width: 96px;
        display: block;
        flex-grow: 0;
        flex-shrink: 0;
    }

    .flex {
        display: flex;
        overflow: auto;
    }
</style>
<div class="flex">
    <div class="box rounded-t-none bg-primary"></div>
    <div class="box rounded-t-extra-small bg-primary"></div>
    <div class="box rounded-t-small bg-primary"></div>
    <div class="box rounded-t-medium bg-primary"></div>
    <div class="box rounded-t-large bg-primary"></div>
    <div class="box rounded-t-large-increased bg-primary"></div>
    <div class="box rounded-t-extra-large bg-primary"></div>
    <div class="box rounded-t-extra-large-increased bg-primary"></div>
    <div class="box rounded-t-extra-extra-large bg-primary"></div>
</div>

<style>
    .box {
        height: 96px;
        width: 96px;
        display: block;
        flex-grow: 0;
        flex-shrink: 0;
    }

    .flex {
        display: flex;
        overflow: auto;
    }
</style>