src/docs/mask-type.mdx
import { ApiTable } from "@/components/api-table.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx"; import { ResponsiveDesign } from "@/components/content.tsx"; import { Stripes } from "@/components/stripes.tsx";
export const title = "mask-type"; export const description = "Utilities for controlling how an SVG mask is interpreted.";
<ApiTable rows={[ ["mask-type-alpha", "mask-type: alpha;"], ["mask-type-luminance", "mask-type: luminance;"], ]} />
Use the mask-type-alpha and mask-type-luminance utilities to control the type of an SVG mask:
<!-- [!code classes:mask-type-alpha,mask-type-luminance] -->
<svg>
<mask id="blob1" class="mask-type-alpha fill-gray-700/70">
<path d="..."></path>
</mask>
<image href="/img/mountains.jpg" height="100%" width="100%" mask="url(#blob1)" />
</svg>
<svg>
<mask id="blob2" class="mask-type-luminance fill-gray-700/70">
<path d="..."></path>
</mask>
<image href="/img/mountains.jpg" height="100%" width="100%" mask="url(#blob2)" />
</svg>
When using mask-type-luminance the luminance value of the SVG mask determines visibility, so sticking with grayscale colors will produce the most predictable results. With mask-alpha, the opacity of the SVG mask determines the visibility of the masked element.
<ResponsiveDesign element="mask" property="mask-type" defaultClass="mask-type-alpha" featuredClass="mask-type-luminance" />