Overflow

Utilities for controlling how an element handles content that is too large for the container.

React propsCSS Properties
overflow={keyword}overflow: {keyword};
overflowX={keyword}overflow-x: {keyword};
overflowY={keyword}overflow-y: {keyword};

Visible

Use overflow="visible" to prevent content within an element from being clipped. Note that any content that overflows the bounds of the element will then be visible.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflow="visible" h={24} px={6} py={2} borderRadius="md" bg="light-blue-200" > <x.p w={{ md: 2 / 3, lg: 1 / 2 }} fontFamily="Flow" lineHeight={5} color="light-blue-700" > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eleifend rutrum auctor. Phasellus convallis sagittis augue ut ornare. Vestibulum et gravida lectus, sed ultrices sapien. Nullam aliquet elit dui, vitae hendrerit lectus volutpat eget </x.p> </x.div> </x.div> </template> <x.div overflow="visible" h={24}> Lorem ipsum dolor sit amet... </x.div> </>

Auto

Use overflow="auto" to add scrollbars to an element in the event that its content overflows the bounds of that element. Unlike overflow="scroll", which always shows scrollbars, this utility will only show them if scrolling is necessary.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflow="auto" h={32} px={6} py={2} borderRadius="md" bg="red-200" > <x.p fontFamily="Flow" lineHeight={5} color="red-700"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eleifend rutrum auctor. Phasellus convallis sagittis augue ut ornare. Vestibulum et gravida lectus, sed ultrices sapien. Nullam aliquet elit dui, vitae hendrerit lectus volutpat eget. In porttitor tincidunt egestas. Pellentesque laoreet ligula at est vulputate facilisis. Etiam tristique justo ut odio placerat ornare. Cras bibendum, orci at ornare tincidunt, lacus nunc gravida enim, sit amet euismod nunc lectus in lectus. Ut dictum nulla et arcu aliquet ornare. Aliquam et dapibus lectus. Aenean mattis elit mi, sed ultricies augue consectetur id. Sed id magna malesuada, luctus urna a, bibendum tortor. Cras cursus cursus ex. Nulla fringilla elit vitae imperdiet scelerisque. Donec ac sem eu diam convallis mollis a sed leo. Proin congue augue turpis, eget rutrum dolor ultricies non. Nulla blandit venenatis dapibus. Sed tincidunt mollis elit, quis suscipit nibh eleifend quis. Donec ex lorem, auctor eu rutrum in, blandit id dolor. Nulla molestie arcu turpis. In id felis vulputate, tempor massa eget, malesuada mauris. Quisque fringilla consequat metus, luctus scelerisque leo fringilla vel. </x.p> </x.div> </x.div> </template> <x.div overflow="auto" h={32}> Lorem ipsum dolor sit amet... </x.div> </>

Hidden

Use overflow="hidden" to clip any content within an element that overflows the bounds of that element.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflow="hidden" h={32} px={6} py={2} borderRadius="md" bg="purple-200" > <x.p fontFamily="Flow" lineHeight={5} color="purple-700"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eleifend rutrum auctor. Phasellus convallis sagittis augue ut ornare. Vestibulum et gravida lectus, sed ultrices sapien. Nullam aliquet elit dui, vitae hendrerit lectus volutpat eget. In porttitor tincidunt egestas. Pellentesque laoreet ligula at est vulputate facilisis. Etiam tristique justo ut odio placerat ornare. Cras bibendum, orci at ornare tincidunt, lacus nunc gravida enim, sit amet euismod nunc lectus in lectus. Ut dictum nulla et arcu aliquet ornare. Aliquam et dapibus lectus. Aenean mattis elit mi, sed ultricies augue consectetur id. Sed id magna malesuada, luctus urna a, bibendum tortor. Cras cursus cursus ex. Nulla fringilla elit vitae imperdiet scelerisque. Donec ac sem eu diam convallis mollis a sed leo. Proin congue augue turpis, eget rutrum dolor ultricies non. Nulla blandit venenatis dapibus. Sed tincidunt mollis elit, quis suscipit nibh eleifend quis. Donec ex lorem, auctor eu rutrum in, blandit id dolor. Nulla molestie arcu turpis. In id felis vulputate, tempor massa eget, malesuada mauris. Quisque fringilla consequat metus, luctus scelerisque leo fringilla vel. </x.p> </x.div> </x.div> </template> <x.div overflow="hidden" h={32}> Lorem ipsum dolor sit amet... </x.div> </>

Scroll horizontally if needed

Use overflowX="auto" to allow horizontal scrolling if needed.

<> <template preview> <x.div overflowX="auto" borderRadius="md" bg="fuchsia-200"> <x.p display="inline-block" color="fuchsia-500" fontWeight="medium" px={6} py={4} > QrLmmW69vMQDtCOg48jidqvvWD2FzDt7I7bBoDc98SRP5OwvOScVYbRzFdfp540eF5v1pjogYkyI8NXqu4wY8chgsXIV0LU7XQKWJ98wLaBSHWiBhvkEU1T3sd6KEFo53CLjVjIz8UvZajb8sbsu62xTsF9cRtFdwEvusq6zJHvedymDCUkY6qXHsuL6fOmHo4KKMurZuJZrK3plRPUaI8XVciz8dVq5CEUXjMrTcB76H1w90CnkRER3nYjs3suTa3223xs8aL97m0peQfjlvKbF8HcmQG5mHEitCn1QZnbMZUK3zE9AIjwcVXP7R9V4fw2A93cZD7wj333X6aaiHZdkkTPtst0u05KSob5c0ZuKQi4D3V395NfFKKr8cR27jmpB7dqK2GiWXeOQUFcjmFVwlHWSlH8ZdUoVJpXf1xL6CRUxwZP4EhBbqQZaJm26ijWII6LRxJ5eVU9Y7KKvQsUeX5BawtgeMWRmjeCwQadTLTQG8gLpi2DvGpMtPWCdqHgEglVSB1ZlDrjEEsXYrNx1IOY0053K3pWNaR1ezyz8kahRfNs3byaHcIQu9tWTrcMpBWhZ45DzLjVV1N8Zt96uLnNWK5DvbKW8GgMuwY7fHkZFz85MN4d2gL0j85HmXGx9oPTFRkPWsmMOHUvm5IhB7QqGSAwT1uL7HgBrNX9a1BAWrp9zV1IWAd1q65sKOOCxTZrXJDpxBxYE4rJAGU6pcri9mUf4g49ZiIAwfu9njtZyYimmImCa6TFhk2jQcSmFDHacExxqC2BfYATHFrKSy94dbw6uWT52nM7MSM9JDu4cs9cbfnaf6amt4hTUotCTONg604b8JKPI1sfd4CG36fBNcnErhpllfRlXkY1xFwmwZT7IJV8okPGNQdTKpdPJOBGw3LHMKojPJl1nPiQB5C9bdePFMNLejSXY5DDvO70ehOCJpBtKZY2quoFJJjGfXe8T4DuGYGmM6JYd5DNinWZuUWXGvfIlJRHgf8BQNQvtmEzqGXIeQZitiq9F </x.p> </x.div> </template> <x.div overflowX="auto">QrLmmW69vMQDtCOg48jidqvvWD2...</x.div> </>

Scroll vertically if needed

Use overflowY="auto" to allow vertical scrolling if needed.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflowY="auto" h={32} px={6} py={2} borderRadius="md" bg="amber-200" > <x.p fontFamily="Flow" lineHeight={5} color="amber-700"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eleifend rutrum auctor. Phasellus convallis sagittis augue ut ornare. Vestibulum et gravida lectus, sed ultrices sapien. Nullam aliquet elit dui, vitae hendrerit lectus volutpat eget. In porttitor tincidunt egestas. Pellentesque laoreet ligula at est vulputate facilisis. Etiam tristique justo ut odio placerat ornare. Cras bibendum, orci at ornare tincidunt, lacus nunc gravida enim, sit amet euismod nunc lectus in lectus. Ut dictum nulla et arcu aliquet ornare. Aliquam et dapibus lectus. Aenean mattis elit mi, sed ultricies augue consectetur id. Sed id magna malesuada, luctus urna a, bibendum tortor. Cras cursus cursus ex. Nulla fringilla elit vitae imperdiet scelerisque. Donec ac sem eu diam convallis mollis a sed leo. Proin congue augue turpis, eget rutrum dolor ultricies non. Nulla blandit venenatis dapibus. Sed tincidunt mollis elit, quis suscipit nibh eleifend quis. Donec ex lorem, auctor eu rutrum in, blandit id dolor. Nulla molestie arcu turpis. In id felis vulputate, tempor massa eget, malesuada mauris. Quisque fringilla consequat metus, luctus scelerisque leo fringilla vel. </x.p> </x.div> </x.div> </template> <x.div overflowY="auto" h={32}> Lorem ipsum dolor sit amet... </x.div> </>

Scroll horizontally always

Use overflowX="scroll" to allow horizontal scrolling and always show scrollbars unless always-visible scrollbars are disabled by the operating system.

<> <template preview> <x.div overflowX="scroll" borderRadius="md" bg="emerald-200"> <x.p fontFamily="Flow" display="inline-block" color="emerald-500" fontWeight="medium" px={6} py={4} > Lorem ipsum dolor sit amet, consectetur adipiscing elit. </x.p> </x.div> </template> <x.div overflowX="scroll"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </x.div> </>

Scroll vertically always

Use overflowY="scroll" to allow vertical scrolling and always show scrollbars unless always-visible scrollbars are disabled by the operating system.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflowY="scroll" h={32} px={6} py={2} borderRadius="md" bg="light-blue-200" > <x.p fontFamily="Flow" lineHeight={5} color="light-blue-700"> Lorem ipsum dolor sit amet... vel. </x.p> </x.div> </x.div> </template> <x.div overflowY="scroll" h={32}> Lorem ipsum dolor sit amet... </x.div> </>

Scroll in all directions

Use overflow="scroll"to add scrollbars to an element. Unlike overflow="auto", which only shows scrollbars if they are necessary, this utility always shows them. Note that some operating systems (like macOS) hide unnecessary scrollbars regardless of this setting.

<> <template preview> <x.div h={32} overflow="hidden"> <x.div overflow="scroll" h={32} px={6} py={2} borderRadius="md" bg="rose-200" > <x.p display="inline-block" fontFamily="Flow" lineHeight={5} color="rose-700" px={6} py={4} > Lorem ipsum dolor sit amet, consectetur adipiscing elit. QrLmmW69vMQDtCOg48jidqvvWD2FzDt7I7bBoDc98SRP5OwvOScVYbRzFdfp540eF5v1pjogYkyI8NXqu4wY8chgsXIV0LU7XQKWJ98wLaBSHWiBhvkEU1T3sd6KEFo53CLjVjIz8UvZajb8sbsu62xTsF9cRtFdwEvusq6zJHvedymDCUkY6. Mauris eleifend rutrum auctor. Phasellus convallis sagittis augue ut ornare. Vestibulum et gravida lectus, sed ultrices sapien. Nullam aliquet elit dui, vitae hendrerit lectus volutpat eget. In porttitor tincidunt egestas. Pellentesque laoreet ligula at est vulputate facilisis. Etiam tristique justo ut odio placerat ornare. Cras bibendum, orci at ornare tincidunt, lacus nunc gravida enim, sit amet euismod nunc lectus in lectus. Ut dictum nulla et arcu aliquet ornare. Aliquam et dapibus lectus. Aenean mattis elit mi, sed ultricies augue consectetur id. Sed id magna malesuada, luctus urna a, bibendum tortor. Cras cursus cursus ex. Nulla fringilla elit vitae imperdiet scelerisque. Donec ac sem eu diam convallis mollis a sed leo. Proin congue augue turpis, eget rutrum dolor ultricies non. Nulla blandit venenatis dapibus. Sed tincidunt mollis elit, quis suscipit nibh eleifend quis. Donec ex lorem, auctor eu rutrum in, blandit id dolor. Nulla molestie arcu turpis. In id felis vulputate, tempor massa eget, malesuada mauris. Quisque fringilla consequat metus, luctus scelerisque leo fringilla vel. </x.p> </x.div> </x.div> </template> <x.div overflow="scroll" h={32}> Lorem ipsum dolor sit amet... </x.div> </>

Responsive

To apply an overflow utility only at a specific breakpoint, use responsive object notation. For example, adding the property overflow={{ md: "auto" }} to an element would apply the overflow="auto" utility at medium screen sizes and above.

<x.div overflow={{ md: 'auto' }} />

For more information about xstyled's responsive design features, check out Responsive Design documentation.

Edit this page on GitHub