• Docs
  • Blog
    • 0.24.0

    • Switch to dark mode
    Get Started
    Components
    Styling
    Theming

    Concepts

    OverviewCompositionTesting

    Layout

    Aspect RatioBleedBoxCenterContainerDividerFlexFloatGridLink OverlayScrollableStackWrap

    Components

    AccordionAdmonitionAvatarButtonCarouselCheckboxClipboardCollapsibleComboboxConfirm ModalCTAModalDate PickerDialogFieldFieldsetFile UploaderIcon ButtonInputLoading StatesMenuNotificationsNumber InputPin InputProgressPrompt ModalRadioRatingSelectSplit ButtonSwitchTableTabsTagTextTextareaToggleTooltip

    Utilities

    Feature FlagsForLocal StoragePortalShowsplitPropsTheme

    Float

    Used to anchor an element to the edge of a container.

    • Panda
    import { Box, Circle, Float } from "styled-system/jsx";
    export const FloatBasic = () => (
    <Box
    bgColor="page.surface.initial"
    h="80px"
    pos="relative"
    w="80px"
    >
    <Float>
    <Circle size="5" bg="danger.surface.initial" color="danger.text.initial">
    3
    </Circle>
    </Float>
    </Box>
    )

    Usage

    Float requires a parent element with position: relative style applied.

    import { Box, Float } from "styled-system/jsx";
    <Box position="relative">
    <Float>
    <div />
    </Float>
    </Box>

    Examples

    Placement

    Use the placement prop to position the element along the edges of the container.

    import { Box, Circle, Float, HStack, VStack } from "styled-system/jsx";
    import { For } from "@cerberus/react";
    export const FloatWithPlacements = () => (
    <HStack gap="xl" wrap="wrap">
    <For each={placements}>
    {(placement) => (
    <VStack key={placement} gap="3">
    <p>{placement}</p>
    <Box
    bgColor="page.surface.100"
    position="relative"
    height="80px"
    width="80px"
    >
    <Float placement={placement}>
    <Circle size="5" bg="red" color="white">
    3
    </Circle>
    </Float>
    </Box>
    </VStack>
    )}
    </For>
    </HStack>
    )
    const placements = [
    "bottom-end",
    "bottom-start",
    "top-end",
    "top-start",
    "bottom-center",
    "top-center",
    "middle-center",
    "middle-end",
    "middle-start",
    ] as const

    Offset X

    Use the offsetX prop to offset the element along the x-axis.

    import { Box, Circle, Float } from "styled-system/jsx";
    export const FloatWithOffsetX = () => (
    <Box position="relative" w="80px" h="80px" bg="page.bg.initial">
    <Float offsetX="-4">
    <Circle size="5" bg="red" color="white">
    3
    </Circle>
    </Float>
    </Box>
    )

    Offset Y

    Use the offsetY prop to offset the element along the y-axis.

    import { Box, Circle, Float } from "styled-system/jsx";
    export const FloatWithOffsetY = () => (
    <Box position="relative" w="80px" h="80px" bg="page.bg.initial">
    <Float offsetY="-4">
    <Circle size="5" bg="red" color="white">
    3
    </Circle>
    </Float>
    </Box>
    )

    Offset

    Use the offset prop to offset the element along both axes.

    import { Box, Circle, Float } from "styled-system/jsx";
    export const FloatWithOffset = () => (
    <Box position="relative" w="80px" h="80px" bg="page.bg.initial">
    <Float offset="-4">
    <Circle size="5" bg="red" color="white">
    3
    </Circle>
    </Float>
    </Box>
    )

    Avatar

    Here's an example of composing a Float component with an Avatar component.

    import { Box, Float } from "styled-system/jsx";
    import { Avatar } from "@cerberus/react";
    export const FloatWithAvatar = () => (
    <Box position="relative" w="80px" h="80px" bg="page.bg.initial">
    <Float>
    <Avatar
    src="https://avatars.githubusercontent.com/u/12345678?v=4"
    />
    </Float>
    </Box>
    )

    Props

    PropTypeDescription
    placementSystemStyleObject['float']The placement of the float element relative to its parent.
    offsetXSystemStyleObject['marginInline']The offset along the x-axis.
    offsetYSystemStyleObject['marginBlock']The offset along the y-axis.

    On this page

    • Edit this page on Github
    Cerberus Design System | Docs