Curved Text Wrapping

Shapes in CSS to flow text around can be done using the shape-outside property.

  • circle()
  • ellipse()
  • inset()
  • polygon()
  • url()
  • initial()
  • inherit()

In the brackets are 4 figures s

Could be done by hand coding each floating div in width. But that'd take ages. Trying to do with Emmet, but looks like a function is needed to escape the linear effect of simply subtracting a fixed amount.

The trick to getting the circle outside the flow is to use a negative value for it's right margin: margin-right: -240px.

This has a negative margin value.

In this example the oval has been set to: shape-outside: ellipse(). That is no values were placed in the brackets.

Fuga quis provident aliquam molestiae ut suscipit sunt modi rerum velit sint a eaque mollitia at doloremque, sit aliquid, officiis blanditiis laudantium, reiciendis ad nesciunt veniam.

Quaerat, beatae unde, doloremque, ex pariatur, dolores vero aperiam voluptas deserunt consectetur atque eos maiores omnis nemo ratione et. Praesentium quia dolorem deleniti eius, expedita perspiciatis.

Illo ullam facere illum soluta, ratione ut sapiente beatae aut, rerum itaque consequatur libero aliquam! Beatae aperiam illo pariatur, sint, vel ipsa architecto praesentium fuga id.

Reiciendis aliquid, veniam nesciunt, quas laborum eveniet dolorem quisquam. Aliquid explicabo sapiente assumenda doloremque totam provident illum autem dignissimos, cupiditate labore delectus accusantium? Aspernatur, voluptatibus quam.

Alias quos amet dicta iusto repellat harum facilis illum ex asperiores. Deserunt, magni rem. Eius nobis quas minus ab excepturi natus perspiciatis quibusdam rem esse necessitatibus.

Ea, dolores veniam odit repellat rem corrupti quod placeat, illum est nihil, quam dolorum cumque facere velit. Earum necessitatibus impedit, aut, quia nihil doloribus fugit sed.

Tempora pariatur et, repellendus consequatur modi impedit! Ea alias, obcaecati expedita non animi, mollitia dolorem aliquam praesentium tenetur quam, reprehenderit a dolorum ex natus nam iure!

Quisquam inventore necessitatibus, eos sint obcaecati provident maxime eligendi, cumque amet dignissimos fuga labore veniam facilis minima excepturi quibusdam hic, earum voluptate ad est doloremque. Repudiandae?

Possimus incidunt adipisci, nostrum. Unde minus officiis facilis amet molestiae ullam quo aperiam tempora repellat deserunt, sint quia pariatur dolor laboriosam adipisci optio modi repellendus! Nulla.

Dignissimos reiciendis impedit minus, atque vel ad ullam magnam eaque corrupti nam. Blanditiis vitae soluta illum facere esse dolores, architecto sed minima cupiditate doloremque aliquid quos!

Adipisci nulla, quia, incidunt sed distinctio laudantium, cum dolor culpa velit rerum dolorem totam ipsam placeat atque ducimus temporibus ipsa quas cumque inventore beatae molestias natus!

Architecto dolorem, laborum laudantium minima omnis dignissimos vitae fuga vel accusantium consequatur in accusamus obcaecati, amet eum repellat provident cumque rem maxime quae labore dolorum at.

Some text here....

Here shape-outside: ellipse(650px 400px 50% 50%); has made no difference to the shape of the text flow.

Fuga quis provident aliquam molestiae ut suscipit sunt modi rerum velit sint a eaque mollitia at doloremque, sit aliquid, officiis blanditiis laudantium, reiciendis ad nesciunt veniam.

Quaerat, beatae unde, doloremque, ex pariatur, dolores vero aperiam voluptas deserunt consectetur atque eos maiores omnis nemo ratione et. Praesentium quia dolorem deleniti eius, expedita perspiciatis.

Illo ullam facere illum soluta, ratione ut sapiente beatae aut, rerum itaque consequatur libero aliquam! Beatae aperiam illo pariatur, sint, vel ipsa architecto praesentium fuga id.

Reiciendis aliquid, veniam nesciunt, quas laborum eveniet dolorem quisquam. Aliquid explicabo sapiente assumenda doloremque totam provident illum autem dignissimos, cupiditate labore delectus accusantium? Aspernatur, voluptatibus quam.

Alias quos amet dicta iusto repellat harum facilis illum ex asperiores. Deserunt, magni rem. Eius nobis quas minus ab excepturi natus perspiciatis quibusdam rem esse necessitatibus.

Ea, dolores veniam odit repellat rem corrupti quod placeat, illum est nihil, quam dolorum cumque facere velit. Earum necessitatibus impedit, aut, quia nihil doloribus fugit sed.

Tempora pariatur et, repellendus consequatur modi impedit! Ea alias, obcaecati expedita non animi, mollitia dolorem aliquam praesentium tenetur quam, reprehenderit a dolorum ex natus nam iure!

Quisquam inventore necessitatibus, eos sint obcaecati provident maxime eligendi, cumque amet dignissimos fuga labore veniam facilis minima excepturi quibusdam hic, earum voluptate ad est doloremque. Repudiandae?

Possimus incidunt adipisci, nostrum. Unde minus officiis facilis amet molestiae ullam quo aperiam tempora repellat deserunt, sint quia pariatur dolor laboriosam adipisci optio modi repellendus! Nulla.

Dignissimos reiciendis impedit minus, atque vel ad ullam magnam eaque corrupti nam. Blanditiis vitae soluta illum facere esse dolores, architecto sed minima cupiditate doloremque aliquid quos!

Adipisci nulla, quia, incidunt sed distinctio laudantium, cum dolor culpa velit rerum dolorem totam ipsam placeat atque ducimus temporibus ipsa quas cumque inventore beatae molestias natus!

Architecto dolorem, laborum laudantium minima omnis dignissimos vitae fuga vel accusantium consequatur in accusamus obcaecati, amet eum repellat provident cumque rem maxime quae labore dolorum at.

Using clip-path: circle()

In this example the oval has been set to: shape-outside: ellipse(). That is no values were placed in the brackets.

Fuga quis provident aliquam molestiae ut suscipit sunt modi rerum velit sint a eaque mollitia at doloremque, sit aliquid, officiis blanditiis laudantium, reiciendis ad nesciunt veniam.

Quaerat, beatae unde, doloremque, ex pariatur, dolores vero aperiam voluptas deserunt consectetur atque eos maiores omnis nemo ratione et. Praesentium quia dolorem deleniti eius, expedita perspiciatis.

Illo ullam facere illum soluta, ratione ut sapiente beatae aut, rerum itaque consequatur libero aliquam! Beatae aperiam illo pariatur, sint, vel ipsa architecto praesentium fuga id.

Reiciendis aliquid, veniam nesciunt, quas laborum eveniet dolorem quisquam. Aliquid explicabo sapiente assumenda doloremque totam provident illum autem dignissimos, cupiditate labore delectus accusantium? Aspernatur, voluptatibus quam.

Alias quos amet dicta iusto repellat harum facilis illum ex asperiores. Deserunt, magni rem. Eius nobis quas minus ab excepturi natus perspiciatis quibusdam rem esse necessitatibus.

Ea, dolores veniam odit repellat rem corrupti quod placeat, illum est nihil, quam dolorum cumque facere velit. Earum necessitatibus impedit, aut, quia nihil doloribus fugit sed.

Tempora pariatur et, repellendus consequatur modi impedit! Ea alias, obcaecati expedita non animi, mollitia dolorem aliquam praesentium tenetur quam, reprehenderit a dolorum ex natus nam iure!

Quisquam inventore necessitatibus, eos sint obcaecati provident maxime eligendi, cumque amet dignissimos fuga labore veniam facilis minima excepturi quibusdam hic, earum voluptate ad est doloremque. Repudiandae?

Possimus incidunt adipisci, nostrum. Unde minus officiis facilis amet molestiae ullam quo aperiam tempora repellat deserunt, sint quia pariatur dolor laboriosam adipisci optio modi repellendus! Nulla.

Dignissimos reiciendis impedit minus, atque vel ad ullam magnam eaque corrupti nam. Blanditiis vitae soluta illum facere esse dolores, architecto sed minima cupiditate doloremque aliquid quos!

Adipisci nulla, quia, incidunt sed distinctio laudantium, cum dolor culpa velit rerum dolorem totam ipsam placeat atque ducimus temporibus ipsa quas cumque inventore beatae molestias natus!

Architecto dolorem, laborum laudantium minima omnis dignissimos vitae fuga vel accusantium consequatur in accusamus obcaecati, amet eum repellat provident cumque rem maxime quae labore dolorum at.

This is the div with border-radius: 50% to make a circle.

The text (supposedly) inside just ignores it and behaves as if in a rectangle.

Provident facere error voluptatum molestias voluptatem suscipit eius odit blanditiis! Iure dignissimos, in amet, ullam quasi fuga veritatis sint facere, sed maiores perspiciatis voluptatibus illum!

Laborum iure quis, minima sint ad sit, accusantium sapiente ducimus quam quos atque blanditiis earum nulla. Dicta debitis officia nesciunt impedit fuga perferendis facilis mollitia.

Fugit labore, nam. Id placeat vel esse architecto odio numquam officia odit dolores quis tenetur, nobis eius cumque perferendis iste suscipit eum sequi dolorum nisi.

Quibusdam cupiditate corrupti sequi reiciendis, hic, repellat incidunt quod vitae nemo fugiat aliquid placeat expedita qui sunt nostrum. Minima optio odio neque hic quasi sapiente.

Sint reprehenderit maxime eos eius, dolores odit! Ipsa cupiditate aut similique reiciendis libero rerum officia debitis eum suscipit rem, iste maiores, quo, consequuntur ab quaerat.

Quis non hic sunt, recusandae facere aspernatur, minus blanditiis asperiores ipsum voluptatum voluptatibus magnam error commodi in harum dolorum nulla doloremque corrupti ullam eaque debitis.

Sit facilis deleniti tempore repudiandae inventore expedita laboriosam laborum quasi, enim, nostrum tempora minima iusto reprehenderit. Beatae fugit, quaerat distinctio doloremque molestiae consectetur earum nisi!