Primitive Components
FrogUI provides a set of primitive components from the UI System. These components are the building blocks for creating higher-level components, layouts, and templates.
FrogUI currently provides the following primitive components as a return value of createSystem
:
Box
: foundational component that includes styling utility properties.Columns
: renders children horizontally (column layout).Divider
: renders a visual separator.Icon
: renders an icon from a collection.Image
: renders an image element.Heading
: renders a heading text node.HStack
: renders children horizontally (inline layout).Rows
: renders children vertically (row layout).Spacer
: renders a spacer node.Text
: renders a text node.VStack
: renders children vertically (inline layout).
The following example trivially demonstrates how to use the primitive components to build a "Hero" layout:
index.tsx
import { Frog } from 'frog'
import { Box, Heading, Text, VStack, vars } from './ui.js'
export const app = new Frog({
ui: { vars },
}).frame('/', (c) => {
return c.res({
image: (
<Box
grow
alignVertical="center"
backgroundColor="background"
padding="32"
>
<VStack gap="4">
<Heading>FrogUI 🐸</Heading>
<Text color="text200" size="20">
Build consistent frame experiences
</Text>
</VStack>
</Box>
)
})
})