Back to Tailwindcss

Transform Origin

src/docs/transform-origin.mdx

latest5.4 KB
Original Source

import { ApiTable } from "@/components/api-table.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx"; import { ResponsiveDesign, UsingACustomValue } from "@/components/content.tsx";

export const title = "transform-origin"; export const description = "Utilities for specifying the origin for an element's transformations.";

<ApiTable rows={[ ["origin-center", "transform-origin: center;"], ["origin-top", "transform-origin: top;"], ["origin-top-right", "transform-origin: top right;"], ["origin-right", "transform-origin: right;"], ["origin-bottom-right", "transform-origin: bottom right;"], ["origin-bottom", "transform-origin: bottom;"], ["origin-bottom-left", "transform-origin: bottom left;"], ["origin-left", "transform-origin: left;"], ["origin-top-left", "transform-origin: top left;"], ["origin-(<custom-property>)", "transform-origin: var(<custom-property>);"], ["origin-[<value>]", "transform-origin: <value>;"], ]} />

Examples

Basic example

Use utilities like origin-top and origin-bottom-left to set an element's transform origin:

<Figure> <Example> { <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible"> <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8"> <div className="flex shrink-0 flex-col items-center"> <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400"> origin-center </p> <div className="relative"> <div className="absolute inset-0">
        </div>
        <div className="relative z-10 origin-center rotate-45">
          
          <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
        </div>
      </div>
    </div>
    <div className="flex shrink-0 flex-col items-center">
      <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
        origin-top-left
      </p>
      <div className="relative">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative z-10 origin-top-left rotate-12">
          
          <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
        </div>
      </div>
    </div>
    <div className="flex shrink-0 flex-col items-center">
      <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
        origin-bottom
      </p>
      <div className="relative">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative z-10 origin-bottom -rotate-12">
          
          <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
        </div>
      </div>
    </div>
  </div>
</div>

} </Example>

html
<!-- [!code classes:origin-center,origin-top-left,origin-bottom] -->



</Figure>

Using a custom value

<UsingACustomValue element="img" elementAttributes={{ src: "/img/mountains.jpg" }} utility="origin" name="transform origin" value="33%_75%" variable="transform-origin" />

Responsive design

<ResponsiveDesign element="img" elementAttributes={{ src: "/img/mountains.jpg" }} property="transform-origin" defaultClass="origin-center" featuredClass="origin-top" />