Skip to content

BorderRadius

Defines immutable border radii for widgets.

Usage Examples

vue
<script setup>
import { BorderRadius, BoxDecoration, Container, Text } from "fluekit";

// 1. Circular radius for all corners
const circular = BorderRadius.circular(10); // Returns { topLeft: 10, topRight: 10, bottomLeft: 10, bottomRight: 10 }
const all = BorderRadius.all(10); // Alias for circular

// 2. Specific corners
const topRounded = BorderRadius.only({
  topLeft: 10,
  topRight: 10,
});

// 3. Zero radius
const zero = BorderRadius.zero;

const blueDecoration = BoxDecoration({ color: "blue", borderRadius: circular });
const redDecoration = BoxDecoration({ color: "red", borderRadius: topRounded });
const whiteTextStyle = TextStyle({ color: "white" });
</script>

<template>
  <Container :decoration="blueDecoration">
    <Text data="Circular Border" />
  </Container>

  <Container :decoration="redDecoration">
    <Text data="Top Rounded" />
  </Container>
</template>

API

Types

typescript
export type BorderRadiusValue = number | string;

export interface BorderRadiusProps {
  // 'all' property is NOT supported. Use BorderRadius.all()
  topLeft?: BorderRadiusValue;
  topRight?: BorderRadiusValue;
  bottomLeft?: BorderRadiusValue;
  bottomRight?: BorderRadiusValue;
}

export type BorderRadiusType = BorderRadiusProps;
export type BorderRadius = BorderRadiusProps;

Methods

BorderRadius()

Factory function that acts as .only().

typescript
function BorderRadius(borderRadius: BorderRadiusProps): BorderRadiusProps;

BorderRadius.all()

Creates a uniform border radius for all corners.

typescript
function all(value: BorderRadiusValue): BorderRadiusProps;

BorderRadius.circular()

Alias for .all().

typescript
function circular(value: BorderRadiusValue): BorderRadiusProps;

BorderRadius.only()

Creates border radii for specific corners.

typescript
function only(borderRadius: {
  topLeft?: BorderRadiusValue;
  topRight?: BorderRadiusValue;
  bottomLeft?: BorderRadiusValue;
  bottomRight?: BorderRadiusValue;
}): BorderRadiusProps;

BorderRadius.zero

Static property for zero border radius.

typescript
const zero: BorderRadiusProps;

Examples

Circular Border

vue
<Container
  :decoration="
    BoxDecoration({
      color: 'purple',
      borderRadius: BorderRadius.circular(20),
    })
  "
  :width="100"
  :height="100"
  alignment="center"
>
  <Text data="Circle" :style="whiteTextStyle" />
</Container>

Top Rounded Only

vue
<Container
  :decoration="
    BoxDecoration({
      color: 'green',
      borderRadius: BorderRadius.only({ topLeft: 15, topRight: 15 }),
    })
  "
  :width="100"
  :height="100"
  alignment="center"
>
  <Text data="Top Rounded" :style="whiteTextStyle" />
</Container>

Mixed Border Radius

vue
<Container
  :decoration="BoxDecoration({
    color: 'orange',
    borderRadius: BorderRadius.only({
      topLeft: 20,
      topRight: 5,
      bottomLeft: 5,
      bottomRight: 20,
    }),
  }"
  :width="100"
  :height="100"
  alignment="center"
>
  <Text data="Mixed" :style="whiteTextStyle" />
</Container>