# App Studio complete documentation
Generated from the public pages. Start with https://app-studio-6167b.web.app/llms.txt for a smaller index.
Source: https://app-studio-6167b.web.app/components
[@APP-STUDIO/COMPONENTS](https://app-studio-6167b.web.app/docs/GettingStarted)
# React UI. Built to compose.
A TypeScript component library for React and React Native. Build consistent interfaces with shared themes, style props, and documented APIs.
[Start building](https://app-studio-6167b.web.app/components#get-started)[Explore components](https://app-studio-6167b.web.app/button)
TypeScript first Source available Web + Native
REAL COMPONENTS. GO AHEAD, TRY THEM.
COMPONENT PREVIEW
### Compose your next interface.
Controlled inputs. Typed callbacks. Shared styling.
Project name
A real TextField and Button. No mockup.
CONTROLLED COMPONENTS
### Inputs and controls.
**Stay in the loop**Only the updates that matter.
Include the good stuff
All systems go⌘ KNew release
One component. Your style.
Preview
Code
Not a screenshot. Your future building blocks.[Explore Button](https://app-studio-6167b.web.app/button)
FAMILIAR TOOLS. A FRESH START. React React Native TypeScript[a. Powered by App Studio](https://app-studio-6167b.web.app/)
THE REPETITIVE PART? ALREADY DONE.
## Your ideas deserve more of your time.
Spend less time rebuilding the same controls. Start with a consistent foundation, then bring your own point of view.
### Compose. Don’t compromise.
From buttons and inputs to dialogs and navigation. Start small, combine freely, and keep control of the result.
[Meet the components](https://app-studio-6167b.web.app/docs/Button)
### Your brand belongs here.
Theme tokens, variants, and internal view overrides make a shared foundation feel like your own product.
[Explore the design system](https://app-studio-6167b.web.app/design-system)
### Details that make a difference.
Controls with labels, focus states, and keyboard interactions. Check each component’s examples for its supported behavior.
[Try an interactive control](https://app-studio-6167b.web.app/docs/Checkbox)
DIFFERENT SCREENS. SHARED FOUNDATIONS.
## One familiar API. More places to go.
Use the same imports and component patterns on web and React Native. Each platform gets a dedicated implementation.
- Shared theme tokens and styling conventions
- Platform-aware package exports
- Native compatibility documented per component
[Read the native compatibility guide](https://github.com/rize-network/app-studio-components/blob/main/docs/getting-started/react-native.md)
Some components are web-only. Native animations, icons, and gradients can require additional peers.
******your-next-app.dev
a.
A SHARED FOUNDATION
### Good morning, possibility.
Ready to build**Something great ↗**
**************
REACT DOM
a.YOUR NEXT APP
### Same idea. New screen.
Made for here.
REACT NATIVE
ILLUSTRATIVE LAYOUT · PLATFORM-SPECIFIC RENDERING
FIND YOUR BUILDING BLOCKS
## Small pieces. Whole experiences.
A library that grows with your interface, from the first input to the finishing touch.
[01 ### Actions & inputs Button, TextField, Checkbox, Switch](https://app-studio-6167b.web.app/button)[02 ### Structure & navigation Tabs, Sidebar, Accordion, NavigationMenu](https://app-studio-6167b.web.app/tabs)[03 ### Feedback & overlays Alert, Modal, Toast, Tooltip](https://app-studio-6167b.web.app/modal)[04 ### Content & data Card, Avatar, Badge, Table](https://app-studio-6167b.web.app/card)
FROM IDEA TO FIRST RENDER
## Install. Configure. Build.
Start with your existing React project. Add the package, wrap your app, and make it yours.
1. 01
### Install your foundation
The component library uses App Studio for styling.
`npm install @app-studio/components app-studio`
[Check platform requirements and peer dependencies](https://app-studio-6167b.web.app/docs/installation)
2. 02
### Set up your providers
ThemeProvider resolves your color tokens. ResponsiveProvider enables device-aware layouts.
3. 03
### Build something that feels like you
Use typed props and your own theme. Keep your existing React tools.
```tsx
import { ThemeProvider, ResponsiveProvider,
Vertical } from 'app-studio';
import { Button, Text } from '@app-studio/components';
export default function App() {
return (
Hello, possibility.
);
}
```
Ready for your React project[Full setup guide](https://app-studio-6167b.web.app/docs/installation)
A LITTLE GUIDANCE GOES A LONG WAY
## Built for the way developers learn.
Start with a working example. Understand the decisions. Go deeper when you need to.
[01 / GUIDE ### Your first component Installation, providers, peer dependencies, and a working example. Open the guide](https://app-studio-6167b.web.app/docs/installation)[02 / GUIDE ### Explore the components Props, variants, and interactive examples. Find your next building block. Open the guide](https://app-studio-6167b.web.app/docs/Button)[03 / GUIDE ### Understand the engine See how App Studio handles styling, themes, and responsive layouts. Open the guide](https://app-studio-6167b.web.app/)
GOOD QUESTIONS
## A few things to know.
Which package should I start with?
Choose @app-studio/components for ready-made UI and install app-studio alongside it. Choose app-studio alone when you want to build your own components from layout and styling primitives.
Can I make the components match my brand?
Yes. Use ThemeProvider for shared color tokens, component props for variants and sizes, and the views prop to style internal parts. Start with one component before creating a shared design system.
What does React Native support include?
The library ships dedicated native implementations with a shared public API. Availability and behavior depend on the component; some controls are web-only and some native features need optional peers. The setup guide links to the compatibility matrix.
Where can I check the source and license?
Both repositories are public on GitHub. Review the LICENSE file included with the version you adopt. The component repository currently has conflicting license information between its README and LICENSE; confirm the terms before commercial use.
YOUR NEXT PROJECT STARTS HERE
## Make your next interface a great one.
[Start building](https://app-studio-6167b.web.app/components#get-started)[Read the documentation](https://app-studio-6167b.web.app/docs/installation)
---
Source: https://app-studio-6167b.web.app/
[APP-STUDIO / STYLING FRAMEWORK](https://app-studio-6167b.web.app/docs/AppStudio)
# Your styles. Your components. One API.
Style React with the props you already understand. Layout, themes, responsive design, and motion — together in your component.
[Get started](https://app-studio-6167b.web.app/#get-started)[Read the docs](https://app-studio-6167b.web.app/docs/AppStudio)
Typed style props Web + Native MIT licensed
```tsx
Make it yours.
```
LIVE PREVIEW
### Make it yours.
Typed styles, rendered live.
YOUR PALETTE
PROPS → PIXELS
ONE CONNECTED STYLING SYSTEM Style props Theme tokens Responsive Animation
CLOSE TO YOUR COMPONENT. OUT OF YOUR WAY.
## Less context switching. More clarity.
Read the structure and the styling in the same place. A View for your layout. Tokens for your colors. Props for the details.
### CSS you already know.
Use padding, gap, borderRadius, and other typed style props directly. Compose layouts with View, Horizontal, and Vertical.
[See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio)
### Tokens that connect the dots.
Define your theme once. Use theme-primary and color tokens throughout your interface, with light and dark palettes.
[See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio)
### Made to respond and move.
Adapt layouts with the media prop. Add Animation presets on web, and use Reanimated for supported native motion.
[See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio)
TWO PACKAGES. CLEAR ROLES.
## Start at the layer that works for you.
App Studio gives you the primitives. The component library builds on them. Use either starting point without learning a second styling language.
[Discover the component library](https://app-studio-6167b.web.app/components)
[02 / THE BUILDING BLOCKS ### @app-studio/components Buttons, inputs, dialogs, navigation, and more.](https://app-studio-6167b.web.app/components)[01 / THE FOUNDATION ### app-studio Layout primitives · style props · tokens · motion](https://app-studio-6167b.web.app/docs/AppStudio)
React DOM React Native
FROM IDEA TO FIRST RENDER
## Install. Configure. Build.
Start with your existing React project. Add the package, wrap your app, and make it yours.
1. 01
### Install your foundation
The styling engine works on its own.
`npm install app-studio`
[Check platform requirements and peer dependencies](https://app-studio-6167b.web.app/docs/core)
2. 02
### Set up your providers
ThemeProvider resolves your color tokens. ResponsiveProvider enables device-aware layouts.
3. 03
### Build something that feels like you
Use typed props and your own theme. Keep your existing React tools.
```tsx
import { ThemeProvider, ResponsiveProvider,
Vertical, Text, Animation } from 'app-studio';
export default function App() {
return (
Make room for your ideas.
);
}
```
Ready for your React project[Full setup guide](https://app-studio-6167b.web.app/docs/core)
A LITTLE GUIDANCE GOES A LONG WAY
## Built for the way developers learn.
Start with a working example. Understand the decisions. Go deeper when you need to.
[01 / GUIDE ### Understand the foundations Style props, theme tokens, responsive layouts, and your first component. Open the guide](https://app-studio-6167b.web.app/docs/core)[02 / GUIDE ### Go deeper into the API Styling states, animations, hooks, providers, and composition. Open the guide](https://github.com/rize-network/app-studio/blob/main/docs/README.md)[03 / GUIDE ### Take it to native Native mappings, optional peers, and the web APIs that differ. Open the guide](https://github.com/rize-network/app-studio/blob/main/docs/Native.md)
GOOD QUESTIONS
## A few things to know.
How is App Studio different from the component library?
App Studio is the foundation: layout primitives, style props, tokens, hooks, and animations. @app-studio/components adds ready-made controls such as buttons, dialogs, and forms. Use the engine alone or use both together.
Do I have to replace my existing styling?
No. Start with a View or a layout in one part of your React app. App Studio can sit alongside your existing components and styles. Theme tokens need ThemeProvider; responsive device names need ResponsiveProvider.
Does exactly the same code work on web and native?
The package selects a dedicated build for each platform and shares its styling API. Native uses a supported subset: browser selectors and CSS Grid do not map one-to-one. Check the native guide before sharing a screen.
Can I use it in a commercial project?
Yes. App Studio is open source under the MIT license. You can inspect the implementation, adapt it, and use it in commercial applications.
YOUR NEXT PROJECT STARTS HERE
## Your ideas. A better foundation.
[Start building](https://app-studio-6167b.web.app/#get-started)[Read the documentation](https://app-studio-6167b.web.app/docs/core)
---
Source: https://app-studio-6167b.web.app/docs
# Build with App Studio
A shared foundation for React and React Native. Start with ready-made UI, or build your own components with the styling framework underneath it.
[START HERE**Install the packages**Requirements, peer dependencies, and provider setup.](https://app-studio-6167b.web.app/docs/installation)[EXPLORE THE LIBRARY**Find a component**Browse categories, try controls, and open working examples.](https://app-studio-6167b.web.app/docs/components)
## Two packages, one foundation
**`app-studio`** is the framework: layout primitives such as `View`, `Horizontal`, and `Vertical`, typed style props, theme tokens, responsive rules, hooks, and animation presets.
**`@app-studio/components`** is the component library built on that framework: buttons, inputs, navigation, feedback, overlays, and other interface controls.
Use the framework on its own when you want to create your own controls. Install both packages when you want ready-made components. You do not need to replace your existing React state management or application architecture.
## Your path to a first interface
1. **Install:** choose your platform and add compatible dependencies in [Installation](https://app-studio-6167b.web.app/docs/installation).
2. **Configure:** wrap the app in `ThemeProvider` and `ResponsiveProvider`.
3. **Build:** follow the [Quick start](https://app-studio-6167b.web.app/docs/quick-start) to connect real state to your first controls.
4. **Customize:** learn [styling](https://app-studio-6167b.web.app/docs/styling), [themes](https://app-studio-6167b.web.app/docs/theming), and [responsive layouts](https://app-studio-6167b.web.app/docs/responsive).
5. **Explore:** use the [component browser](https://app-studio-6167b.web.app/docs/components) to find reference material and existing examples.
## Conventions to know
- Import layout primitives and providers from `app-studio`.
- Import ready-made controls from `@app-studio/components`.
- Pass familiar styling properties directly as props.
- Resolve `theme-*` and `color-*` tokens through `ThemeProvider`.
- Input callbacks use values: `TextField` returns a string; `Checkbox` and `Switch` return booleans.
- Platform support depends on the component. Read [React Native](https://app-studio-6167b.web.app/docs/react-native) before sharing a screen.
## How to use this documentation
**Getting started** takes you from installation to your first working interface. **Foundations** explains the styling model. **Guides** covers common implementation decisions.
The **component library** is grouped by category. A component's **Reference** page contains its existing documentation, while **Examples** opens its interactive demonstration page. The component browser exposes both, so you can inspect behavior before using it.
Component references include import instructions, interactive examples with copyable source, and searchable props tables. Required props, literal implementation defaults, and compound parts are listed together. Shared styling props link back to the foundations guides.
## Build in the open
Explore [the component source](https://github.com/rize-network/app-studio-components) and [the framework source](https://github.com/rize-network/app-studio). Refer to each package's included `LICENSE` for its terms of use.
---
Source: https://app-studio-6167b.web.app/docs/installation
# Installation
Start with an existing React project. Choose the component library for ready-made controls, or the framework alone for your own component system.
## Requirements
- React 18 or newer. Keep `react` and `react-dom` on matching versions in a web app.
- A React build setup that resolves package exports, such as Vite or your existing framework.
- TypeScript is supported; JavaScript projects can use the same components.
- For React Native, follow [native setup](https://app-studio-6167b.web.app/docs/react-native). The core package declares React Native 0.79 or newer.
## Install the component library
The library depends on App Studio for styling. Install both:
```bash
npm install @app-studio/components app-studio
```
Install the web peer dependencies you do not already have:
```bash
npm install react react-dom react-router-dom formik zustand lucide-react
```
Keep existing compatible versions. React Router supports router-dependent components, Formik powers its form wrappers, and Zustand and the icon package support components that use them. Do not use `--force` to hide incompatible peer versions in a consuming application.
With another package manager, use the same package names with `pnpm add` or `yarn add`.
## Use the framework on its own
If you only need layout primitives, style props, tokens, and motion:
```bash
npm install app-studio
```
You do not need the component library or its Formik, Zustand, and icon peers for this starting point. A web app still needs React and React DOM.
## Configure the providers
`ThemeProvider` defines the color variables behind `theme-*` and `color-*` tokens. `ResponsiveProvider` supplies the device and breakpoint configuration used by `media` and responsive hooks.
```tsx
import React from 'react';
import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio';
export default function App() {
return (
App Studio is ready.
Add your application's components here.
);
}
```
Mount providers near the root. Keep your existing router, data fetching, and state providers; App Studio does not replace them.
## Add document defaults
The library styles components, not the browser document. Add these defaults to your application's stylesheet:
```css
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: system-ui, sans-serif;
}
button,
input,
textarea,
select {
font: inherit;
}
```
There is no separate component stylesheet to import for these examples.
## When routing is needed
Router-dependent components need your app's React Router context. A simple `Button` with `onClick` does not need a router. Internal routing links and navigation components can require one.
## Verify your setup
Start your development server. Confirm that the example renders, `theme-primary` has a color, and changing the viewport affects a component with `media` rules.
Continue with the [Quick start](https://app-studio-6167b.web.app/docs/quick-start). If colors or imports are missing, use [Troubleshooting](https://app-studio-6167b.web.app/docs/troubleshooting).
---
Source: https://app-studio-6167b.web.app/docs/quick-start
# Quick start
Build a small interface with real React state. Complete [Installation](https://app-studio-6167b.web.app/docs/installation) first; this example needs both packages and their web peers.
## Start with a working screen
Copy this into your app's entry component. Edit the name, toggle notifications, and press the button. This example updates local state only; it does not save data to a server.
```tsx
import React from 'react';
import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio';
import { Button, TextField, Switch } from '@app-studio/components';
export default function App() {
const [name, setName] = React.useState('My project');
const [notifications, setNotifications] = React.useState(true);
const [message, setMessage] = React.useState('');
return (
Your first interface
{message}
);
}
```
## Understand the imports
`ThemeProvider`, `ResponsiveProvider`, `Vertical`, and `Text` come from the framework. `Button`, `TextField`, and `Switch` come from the ready-made component library.
`Vertical` stacks children. `gap` sets space between them. `padding` and the `media` override describe the layout alongside its structure.
## Connect state with values
`TextField` calls `onChange` with the new string. `Switch` and `Checkbox` call it with a boolean. Pass your setter directly, or transform the value in your callback. These callbacks do not pass a DOM change event.
The empty-name check disables the button. Your app remains responsible for validation and persistence; a styled control does not save data automatically.
## Make one change at a time
- Change `theme.primary` in [Colors & theming](https://app-studio-6167b.web.app/docs/theming).
- Choose variants or customize internal views in [Styling & composition](https://app-studio-6167b.web.app/docs/styling).
- Connect a complete form in [Forms & validation](https://app-studio-6167b.web.app/docs/forms).
- Use the [component browser](https://app-studio-6167b.web.app/docs/components) to find your next building block.
---
Source: https://app-studio-6167b.web.app/docs/react-native
# React Native
Both packages ship dedicated native builds. Sharing an API reduces repetition, but each platform still needs its own setup and verification.
## Requirements and installation
Use an existing React Native project with package exports enabled. The current core package declares React Native 0.79 or newer. Keep the React version required by your native project.
For the framework alone:
```bash
npm install app-studio
```
For the ready-made component library:
```bash
npm install app-studio @app-studio/components lucide-react-native
```
The native app provides `react` and `react-native`. Do not add React DOM or React Router just to use native primitives.
## Package resolution
Import from `app-studio` and `@app-studio/components` as usual. Metro uses the `react-native` export condition to choose native implementations. Do not import browser bundle paths into a native screen.
For a native TypeScript consumer, follow your framework's configuration and the libraries' native guide. If the wrong typings are selected, check package-export support and the `react-native` custom condition rather than suppressing errors.
## Providers
Use `ThemeProvider` for tokens and `ResponsiveProvider` for responsive rules, as on web. Put them near your native app's root. Text content should use the library's text components rather than assuming a DOM container can render text.
## Optional native features
- `react-native-reanimated` enables supported animation presets.
- `react-native-svg` is used by components that render SVG.
- `react-native-linear-gradient` supports native gradients.
- `lucide-react-native` supplies native icons where used.
Install only the peers required by the components you use. Follow their version-specific setup and run pod installation when your iOS project requires it.
## Differences to plan for
- **Availability:** some components are web-only. Check the compatibility matrix before importing a screen's controls.
- **Layout:** CSS Grid maps to supported fixed-column native layouts, not the entire CSS Grid feature set.
- **Interaction:** browser hover selectors and pseudo-elements do not apply to touch interfaces.
- **Forms:** submission, return keys, and focus need explicit native wiring.
- **Navigation:** use your native navigation setup; browser link behavior is not a native route model.
- **Accessibility:** test native labels, roles, focus, and screen-reader behavior separately.
## Compatibility reference
Use the [component compatibility matrix and setup guide](https://github.com/rize-network/app-studio-components/blob/main/docs/getting-started/react-native.md) and the [framework native mappings](https://github.com/rize-network/app-studio/blob/main/docs/Native.md). The previews on this documentation site run in a browser and do not prove native compatibility.
---
Source: https://app-studio-6167b.web.app/docs/core
# App Studio foundations
`app-studio` is the framework underneath `@app-studio/components`. It provides a common way to describe layout and styling in React and React Native.
## Layout primitives
- `View` is a general-purpose container.
- `Vertical` stacks children in a column.
- `Horizontal` places children in a row.
- `Center` centers its children.
- `Text` renders text with typography and color props.
- `Grid` uses CSS Grid on web and a fixed-column Flexbox mapping on native.
```tsx
import React from 'react';
import { Vertical, Horizontal, Text } from 'app-studio';
export function ProjectSummary() {
return (
Project overview
Ready to buildReact + Native
);
}
```
## Style props
Pass familiar properties such as `padding`, `gap`, `borderRadius`, and `backgroundColor` directly to a primitive. Numbers represent pixels on web and native layout units on React Native.
On web, use semantic elements through `as`, for example `Text as="h2"` or `View as="section"`. Native accessibility semantics need platform-specific props and behavior; browser tags are not native accessibility roles.
## Providers and tokens
`ThemeProvider` resolves color tokens. `ResponsiveProvider` configures named devices and breakpoints. Keep them near the root so screens share the same foundation.
- `theme-primary` expresses a semantic role you configure.
- `color-blue-900` selects a palette entry.
- `media={{ mobile: { padding: 16 } }}` changes styles for a configured device.
Use [Colors & theming](https://app-studio-6167b.web.app/docs/theming) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive) for practical examples.
## Composition stays in React
Extract reusable components, pass props and children, and use hooks as you would in a React app. Routing, application state, data fetching, and validation stay with your chosen tools.
The ready-made library adds props such as `variant`, `size`, and `views`. See [Styling & composition](https://app-studio-6167b.web.app/docs/styling) before creating wrappers around every control.
## What changes between platforms
Package exports select separate web and native implementations. Many props and conventions are shared, but browser selectors, form semantics, navigation, and CSS Grid do not map one-to-one.
Read [React Native](https://app-studio-6167b.web.app/docs/react-native) before assuming a web example can be shared unchanged.
## Further reference
The framework repository has detailed references for [primitives](https://github.com/rize-network/app-studio/blob/main/docs/Components.md), [providers](https://github.com/rize-network/app-studio/blob/main/docs/Providers.md), and [hooks](https://github.com/rize-network/app-studio/blob/main/docs/Hooks.md).
---
Source: https://app-studio-6167b.web.app/docs/styling
# Styling & composition
Use the same styling foundation across your own primitives and the ready-made library. Keep layout close to the component and customize only what you need.
## Start with style props
```tsx
import React from 'react';
import { View, Text } from 'app-studio';
export function Callout() {
return (
A consistent foundation, with room for your design.
);
}
```
Resolve tokens through `ThemeProvider`. Numeric spacing values represent pixels on web and native layout units on React Native.
## Choose a built-in variant
Before overriding internal styles, check the component's `variant`, `size`, and other documented props.
```tsx
import React from 'react';
import { Horizontal } from 'app-studio';
import { Button } from '@app-studio/components';
export function Actions() {
return (
);
}
```
Variant names differ between components. Use each component's TypeScript props and examples rather than assuming every control accepts the same names.
## Customize internal views
`views` exposes named internal parts. Button exposes `container`, `content`, and icon and loader parts. The available names are component-specific.
```tsx
import React from 'react';
import { Button } from '@app-studio/components';
export function CustomButton() {
return (
);
}
```
Preserve labels, focus indicators, disabled behavior, and hit areas when overriding views.
## Interaction states on the web
Primitives support state styles such as `_hover`, `_active`, and `_focus`. Use a semantic interactive element and keep keyboard focus visible.
```tsx
import React from 'react';
import { View } from 'app-studio';
export function StateExample() {
return (
Focus or hover me
);
}
```
Browser selectors and pseudo-elements are web-only. On native, use supported platform events and accessibility behavior. See [platform differences](https://app-studio-6167b.web.app/docs/react-native).
## Compose ordinary React components
Extract a component when layout or behavior repeats. A single visual adjustment can stay as props at the call site. Configure [theme tokens](https://app-studio-6167b.web.app/docs/theming) before copying raw colors across your app.
The [framework styling reference](https://github.com/rize-network/app-studio/blob/main/docs/Styling.md) documents more states and selectors.
---
Source: https://app-studio-6167b.web.app/docs/providers
# Providers
Providers share configuration through React context. Start with the theme and responsive providers; add optional contexts only when your app consumes them.
## The usual starting point
```tsx
import React from 'react';
import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio';
export function ProviderSetup() {
return (
Shared configuration
Your application's screens belong inside these providers.
);
}
```
Keep this setup near your app's root. Your router, state, and data providers remain ordinary React providers alongside it.
## ThemeProvider
`theme` maps semantic tokens such as `primary` to colors. `mode` selects `light` or `dark`. The optional `light` and `dark` props customize palette configuration.
The hook API uses different names: `useTheme()` returns `themeMode` and `setThemeMode`, as well as color resolution helpers. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming) and [Hooks](https://app-studio-6167b.web.app/docs/hooks).
## ResponsiveProvider
`breakpoints` defines screen sizes and `devices` groups them into names such as `mobile`. Descendants use that configuration through `media` or `useResponsive()`.
Keep device names consistent with the rules in your components. See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive).
## Optional providers
**`WindowSizeProvider`** supplies dimensions to `useWindowSize()`. Add it around the consumers that need window measurements. Responsive styling does not require you to add window measurements to every component.
**`AnalyticsProvider`** accepts a `trackEvent` callback. Wire it only if your application needs event tracking; it is not required for basic styling or component rendering.
## Scope configuration deliberately
React context follows the component tree. Keep shared configuration at the root and use nested providers for a deliberate local variation. Test portaled controls, such as dialogs, when a local theme differs from the surrounding app.
The native build exposes the corresponding providers with platform-specific dimension tracking. See [React Native](https://app-studio-6167b.web.app/docs/react-native).
---
Source: https://app-studio-6167b.web.app/docs/theming
# Colors & theming
Connect your interface to shared color tokens. Put `ThemeProvider` near the root so primitives and ready-made components resolve the same palette.
## Theme tokens and palette tokens
`theme-primary` is a semantic role. You decide which palette entry it points to. `color-blue-900` is a specific palette entry. Both are resolved through the provider.
```tsx
import React from 'react';
import { ThemeProvider, Vertical, Text } from 'app-studio';
import { Button } from '@app-studio/components';
export function BrandExample() {
return (
Your brand, shared.
);
}
```
Use semantic tokens for roles that should change together. Use palette tokens when a deliberate fixed color is appropriate.
## Light and dark mode
Control the provider's `mode` prop with React state. It selects the light or dark palette; it does not automatically redesign every custom color or browser document style in your application.
```tsx
import React from 'react';
import { ThemeProvider, Vertical, Text } from 'app-studio';
import { Button } from '@app-studio/components';
export function ThemeExample() {
const [dark, setDark] = React.useState(false);
return (
A shared color system.
);
}
```
Check text contrast, surfaces, borders, disabled states, and focus rings in each mode. Raw hex colors keep their literal value rather than following the palette.
## Per-component colors
Button supports `backgroundColor` for its surface and `textColor` for explicit content color. Other components have their own color props and internal `views` parts. Check the current TypeScript props before copying an override across components.
## Custom palettes and external tools
The provider also accepts `light` and `dark` palette configurations. `useTheme` exposes helpers such as `getColor` for CSS variables and `getColorHex` when another library needs a literal color.
See the [full theming reference](https://github.com/rize-network/app-studio/blob/main/docs/Theming.md) for palette structure and resolution rules. Start with a few semantic tokens before replacing the entire palette.
---
Source: https://app-studio-6167b.web.app/docs/responsive
# Responsive layouts
Use the `media` prop for layout and style changes. Use responsive hooks when the rendered behavior or content must change. Configure both through `ResponsiveProvider`.
## Adapt a layout with media
```tsx
import React from 'react';
import { Horizontal, Vertical, Text } from 'app-studio';
import { Button } from '@app-studio/components';
export function ResponsiveActions() {
return (
Ready for any screen
Resize the viewport to change the layout.
);
}
```
Named devices such as `mobile` depend on your provider configuration. They are not independent magic widths. On web, style overrides use media queries rather than requiring a hook-driven render.
## Configure breakpoints
The shipped defaults use `xs: 0`, `sm: 340`, `md: 560`, `lg: 1080`, and `xl: 1300`. You can supply explicit project breakpoints and device groups:
```ts
const breakpoints = { xs: 0, sm: 480, md: 768, lg: 1024, xl: 1440 };
const devices = {
mobile: ['xs', 'sm'],
tablet: ['md'],
desktop: ['lg', 'xl'],
};
// Pass both objects to ResponsiveProvider near the root.
```
Keep this configuration shared across screens. Changing it changes every named-device rule beneath that provider.
## When to use a hook
`useResponsive()` exposes helpers such as `on('mobile')` for device-aware logic. Hook-driven decisions re-render when the responsive state changes. Prefer `media` for purely visual changes and avoid hiding essential content on small screens.
## Native and constrained layouts
Native responsive state follows window dimensions, including rotation and split-screen. CSS Grid does not exist on native: use a fixed integer column count for the supported mapping or explicit Flexbox layouts.
A browser-window breakpoint is not the same as the width of a narrow panel. The framework's [responsive reference](https://github.com/rize-network/app-studio/blob/main/docs/Responsive.md) also covers container-scoped responsiveness.
## Verify the result
Test a narrow phone, a tablet-sized viewport, a wide screen, and enlarged text. Check focus visibility and code overflow as well as visual alignment.
---
Source: https://app-studio-6167b.web.app/docs/animation
# Animation
Use motion to explain a change or draw attention to new content. Keep important content and controls usable without animation.
## Add an animation preset
Import `Animation` from `app-studio` and pass a preset to `animate`:
```tsx
import React from 'react';
import { View, Text, Animation } from 'app-studio';
import { Button } from '@app-studio/components';
export function MotionExample() {
const [version, setVersion] = React.useState(0);
return (
New content, gently introduced.
);
}
```
The React key remounts the animated content for this demonstration. Do not remount an entire form or screen merely to replay motion; that can reset user state.
## Respect reduced motion
On web, add a reduced-motion rule for the region your app animates:
```css
@media (prefers-reduced-motion: reduce) {
.app-motion,
.app-motion * {
animation: none !important;
transition: none !important;
}
}
```
Do not make completion, navigation, or access to information depend on an animation finishing. Check your native app's reduced-motion behavior separately.
## Native setup
Web presets use CSS keyframes. Native presets use the optional `react-native-reanimated` peer. Without it, animation props are ignored. Follow the peer's platform setup, including the configuration required by your installed version.
See [native setup](https://app-studio-6167b.web.app/docs/react-native) and the [animation reference](https://github.com/rize-network/app-studio/blob/main/docs/Animation.md) for supported presets and options.
---
Source: https://app-studio-6167b.web.app/docs/hooks
# Hooks
Use framework hooks when React needs to know about the environment or an interaction. Prefer style props for visual changes that do not need application logic.
## Read the current theme
`useTheme()` exposes `themeMode`, `setThemeMode`, `theme`, and color helpers. The provider accepts `mode`; the hook's state is named `themeMode`.
```tsx
import React from 'react';
import { useTheme, Text } from 'app-studio';
export function CurrentTheme() {
const { themeMode } = useTheme();
return Current theme: {themeMode};
}
```
Components resolve color tokens automatically. Use `getColor` for a CSS value or `getColorHex` when an external tool requires a literal color. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming).
## Respond to device state
`useResponsive()` reads the configuration from `ResponsiveProvider`. Use `on('mobile')` for device-aware logic. A hook-driven decision re-renders when its state changes; use the `media` prop for purely visual overrides.
```tsx
import React from 'react';
import { useResponsive, Text } from 'app-studio';
export function DeviceHint() {
const { on } = useResponsive();
return {on('mobile') ? 'Compact viewport' : 'Larger viewport'};
}
```
Avoid removing essential content just because a viewport is smaller. See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive).
## Track hover for a visual detail
```tsx
import React from 'react';
import { useHover, View, Text } from 'app-studio';
export function HoverDetail() {
const [ref, hovered] = useHover();
return (
Hover changes this surface; the information is always available.
);
}
```
Hover is a browser interaction, not a native touch interaction. Keep actions and information available to keyboard, touch, and assistive-technology users.
## Read window dimensions
Wrap consumers of `useWindowSize()` in `WindowSizeProvider`:
```tsx
import React from 'react';
import { WindowSizeProvider, useWindowSize, Text } from 'app-studio';
function Dimensions() {
const { width, height } = useWindowSize();
return (
Window: {width} × {height}
);
}
export function WindowExample() {
return (
);
}
```
Window dimensions describe the window, not necessarily a component's available width. On native, verify rotation and split-screen behavior on the target platform.
## Further hooks
The framework also exposes hooks for focus, visibility, scrolling, and element position. Consult the [hook reference](https://github.com/rize-network/app-studio/blob/main/docs/Hooks.md) and current TypeScript signatures for their options and platform differences.
---
Source: https://app-studio-6167b.web.app/docs/forms
# Forms & validation
Choose controlled inputs for a small interaction or Formik wrappers for a larger form. Your application owns validation, submission, loading, and server errors.
## Use value-first callbacks
`TextField` calls `onChange` with a string. `Checkbox` and `Switch` call it with a boolean. Their callbacks do not receive DOM change events.
```tsx
import React from 'react';
import { Vertical } from 'app-studio';
import { TextField, Checkbox } from '@app-studio/components';
export function ControlledFields() {
const [name, setName] = React.useState('');
const [updates, setUpdates] = React.useState(false);
return (
);
}
```
## Connect Formik
Formik is a web peer dependency of the component library. Its named wrappers connect field names to form state. This example validates a required value and displays a local confirmation; it does not call an API.
```tsx
import React from 'react';
import { Formik } from 'formik';
import { Vertical, Text } from 'app-studio';
import { FormikForm, FormikTextField, Button } from '@app-studio/components';
export function ProjectForm() {
const [message, setMessage] = React.useState('');
return (
values.name.trim() ? {} : { name: 'Enter a project name.' }
}
onSubmit={(values, { setSubmitting }) => {
setMessage(`Ready: ${values.name.trim()}`);
setSubmitting(false);
}}
>
{({ isSubmitting }) => (
{message}
)}
);
}
```
For a real asynchronous request, return or await the request in `onSubmit`. Keep submitted data until the save is confirmed, surface failures, and prevent duplicate submissions. Local validation does not replace server validation.
## Labels, errors, and focus
Use a visible label for every field. Keep error text close to its input and programmatically associated with it. After validation fails, help the user reach the first invalid field without losing their values.
Check keyboard submission as well as pointer interaction. Avoid using placeholder text as the only label. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
## Native forms
Native does not have browser form semantics. Wire submission, return keys, focus, and validation explicitly. See [React Native](https://app-studio-6167b.web.app/docs/react-native) before sharing a form screen.
---
Source: https://app-studio-6167b.web.app/docs/accessibility
# Accessibility
Components are a starting point. The accessibility of your product also depends on composition, labels, content, styling overrides, and platform behavior.
## Give controls a clear name
Use visible labels for fields and meaningful text for actions. An icon-only button needs an accessible name. Avoid using a placeholder as the only field label.
```tsx
import React from 'react';
import { Vertical } from 'app-studio';
import { TextField, Button } from '@app-studio/components';
export function LabeledControls() {
return (
);
}
```
## Preserve semantics and keyboard behavior
Use buttons for actions and links for navigation. When using primitives on web, choose the appropriate `as` element. Keep a visible focus indicator and do not recreate a button with a clickable generic container.
Check Tab order, Enter and Space activation, Escape behavior for overlays, and focus return after a dialog closes. Test each component's supported keyboard behavior before composing a new interaction.
## Communicate state and errors
Make disabled, selected, loading, success, and error states understandable without color alone. Associate error text with the corresponding field. Announce relevant asynchronous results without moving focus unnecessarily.
Do not add ARIA roles that conflict with a control's native semantics. The appropriate API differs between the web and native implementations.
## Check colors and motion
Verify contrast in light and dark mode and after applying theme or view overrides. Ensure focus indicators remain visible against the actual surface. Respect reduced motion as described in [Animation](https://app-studio-6167b.web.app/docs/animation).
## Test the composed experience
1. Complete the main task using only a keyboard.
2. Check names, roles, state, and reading order with a screen reader.
3. Enlarge text and test narrow layouts without losing content or controls.
4. Test invalid and loading states, not only the successful path.
5. Repeat platform-specific checks on a real native target when sharing a screen.
Automated checks can catch some problems. They do not establish full conformance or replace testing your product's real workflows.
---
Source: https://app-studio-6167b.web.app/docs/ai-assistants
# App Studio with AI & coding assistants
App Studio publishes the same documentation for people and coding assistants. Use the [documentation index](https://app-studio-6167b.web.app/llms.txt) to find a topic, then fetch its Markdown page for the actual API and examples. These files are regenerated with the website so the two formats stay aligned.
## Choose the right package
- **`app-studio`** is the styling framework. Import `View`, `Horizontal`, `Vertical`, `Text`, `ThemeProvider`, and `ResponsiveProvider` from this package. Install it on its own when building your own component system.
- **`@app-studio/components`** provides ready-made controls built on the framework. Install both packages when using these controls. Check the component's Import section: repository-only modules are explicitly identified.
- Web and React Native use dedicated builds. Shared imports do not guarantee identical platform support; check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) and the component reference.
## Give your assistant the documentation
Start with [llms.txt](https://app-studio-6167b.web.app/llms.txt), a compact index of the framework, setup guides, and component references. Every public page has a Markdown alternative: for example, [installation.md](https://app-studio-6167b.web.app/docs/installation.md) and [Button.md](https://app-studio-6167b.web.app/docs/Button.md). The page's HTML head also links to this alternative.
The [complete Markdown export](https://app-studio-6167b.web.app/llms-full.txt) combines the public pages in one file. It is larger; fetch individual pages when your assistant only needs one API or setup step.
Use this starting prompt with a coding assistant that can fetch URLs:
```text
Read https://app-studio-6167b.web.app/llms.txt.
Use its installation, quick-start, styling, and relevant component references.
Build a React screen with App Studio using the documented imports and callbacks.
Check required props, provider setup, peer dependencies, and platform limitations.
Link the reference pages you used and identify anything the docs do not establish.
```
If the assistant cannot fetch websites, paste the relevant Markdown page into its context. In an existing repository, include your installed package versions and target platform so the assistant can compare the documentation with your local types.
## Check generated code
1. Follow [Installation](https://app-studio-6167b.web.app/docs/installation) before adding controls. Keep existing compatible peers rather than forcing an installation.
2. Mount `ThemeProvider` when using `theme-*` and `color-*` tokens. Use `ResponsiveProvider` for named responsive rules.
3. Use the props documented for the actual component. Required flags, literal defaults, and compound parts are listed in the reference; defaults can be overridden by your design system.
4. Controlled input callbacks receive values: `TextField` returns a string, while `Checkbox` and `Switch` return booleans. Keep that value in React or form state.
5. Try the generated result in the component playground and run your application's type checks, keyboard checks, and platform tests. A code example does not establish support for every browser or native platform.
Continue with [Quick start](https://app-studio-6167b.web.app/docs/quick-start), [Styling & composition](https://app-studio-6167b.web.app/docs/styling), and [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
## Verify source and licensing
The [framework repository](https://github.com/rize-network/app-studio) and [component repository](https://github.com/rize-network/app-studio-components) provide the implementation behind the docs. Component references link to their source declarations. Check the `LICENSE` included with the version you adopt; the two packages have separate terms.
These exports make documentation easier to retrieve. They do not guarantee that a search engine or assistant will index, recommend, or cite the project.
---
Source: https://app-studio-6167b.web.app/docs/troubleshooting
# Troubleshooting
Start with the smallest component that reproduces the issue. Check the installed package versions and your provider setup before adding overrides.
## Colors are missing
Confirm that `ThemeProvider` wraps the component and the token exists. `theme-primary` and `color-*` props resolve through the provider's variables. A raw color and a token follow different resolution paths.
Inspect the rendered element and its computed color. Check whether a local `views` override or surrounding stylesheet changes the value. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming).
## Responsive props do nothing
Mount `ResponsiveProvider`. Check its breakpoint and device configuration, and confirm which viewport or container drives the rule. Do not assume a narrow panel automatically counts as the `mobile` device.
See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive).
## Input state does not update
Use value-first handlers. `TextField` returns a string; `Checkbox` and `Switch` return booleans. Use `onChange={setValue}` for controlled state rather than reading `event.target.value` from these component callbacks.
Keep the controlled value and handler on the same component. See [Forms & validation](https://app-studio-6167b.web.app/docs/forms).
## An import or peer dependency fails
Check the package's exported entry points and the peer versions used by your app. Install compatible peers instead of forcing an incompatible dependency tree. Keep React and its renderer compatible.
If you develop these repositories locally, build the sibling `app-studio` package before consuming its generated entry points. That source-checkout step is separate from installing the published package in an application.
## A routing component throws
Check whether the component depends on React Router and whether it is inside your application's router. A component's navigation behavior is different from a simple action button with an `onClick` handler.
## Native rendering differs from the web preview
The site's previews are browser examples. Check component availability, Metro export resolution, optional native peers, and native-specific setup. Browser selectors, form semantics, and navigation do not map directly to native.
Start with [React Native](https://app-studio-6167b.web.app/docs/react-native) and the linked compatibility matrix.
## An older reference differs from the API
Individual component pages contain existing reference material. Confirm the current TypeScript props and compare the [interactive examples](https://app-studio-6167b.web.app/docs/components) before copying an older prop value. Report the exact page, package versions, platform, and minimal reproduction when opening an issue.
## Where to ask or contribute
Use the [component repository](https://github.com/rize-network/app-studio-components/issues) for ready-made UI issues and the [framework repository](https://github.com/rize-network/app-studio/issues) for primitives and styling behavior. Include the error message and a small reproduction without credentials or private application data.
---
Source: https://app-studio-6167b.web.app/docs/components
COMPONENT LIBRARY
# Find your building blocks.
Browse the library, try a few controls, then open a component’s reference or its existing examples.
TRY THE REAL THING
## Components you can interact with.
These controls use the library itself. Toggle an option or switch between preview and code.
[Build your first interface](https://app-studio-6167b.web.app/docs/quick-start)
REAL COMPONENTS. GO AHEAD, TRY THEM.
COMPONENT PREVIEW
### Compose your next interface.
Controlled inputs. Typed callbacks. Shared styling.
Project name
A real TextField and Button. No mockup.
CONTROLLED COMPONENTS
### Inputs and controls.
**Stay in the loop**Only the updates that matter.
Include the good stuff
All systems go⌘ KNew release
One component. Your style.
Preview
Code
Not a screenshot. Your future building blocks.[Explore Button](https://app-studio-6167b.web.app/button)
77 components
Navigation
## [Accordion](https://app-studio-6167b.web.app/docs/Accordion)
Explore the Accordion component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Accordion)[View examples](https://app-studio-6167b.web.app/accordion)
Feedback
## [Alert](https://app-studio-6167b.web.app/docs/Alert)
Explore the Alert component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Alert)[View examples](https://app-studio-6167b.web.app/alert)
Layout
## [AspectRatio](https://app-studio-6167b.web.app/docs/AspectRatio)
Explore the AspectRatio component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/AspectRatio)[View examples](https://app-studio-6167b.web.app/aspectratio)
Data Display
## [AttachmentGroup](https://app-studio-6167b.web.app/docs/AttachmentGroup)
Explore the AttachmentGroup component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/AttachmentGroup)[View examples](https://app-studio-6167b.web.app/attachment-group)
Inputs
## [Audio Input](https://app-studio-6167b.web.app/docs/AudioInput)
Explore the Audio Input component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/AudioInput)[View examples](https://app-studio-6167b.web.app/audio-input)
Data Display
## [Avatar](https://app-studio-6167b.web.app/docs/Avatar)
Explore the Avatar component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Avatar)[View examples](https://app-studio-6167b.web.app/avatar)
Layout
## [Background](https://app-studio-6167b.web.app/docs/Background)
Explore the Background component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Background)[View examples](https://app-studio-6167b.web.app/background)
Data Display
## [Badge](https://app-studio-6167b.web.app/docs/Badge)
Explore the Badge component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Badge)[View examples](https://app-studio-6167b.web.app/badge)
Inputs
## [BlockEditor](https://app-studio-6167b.web.app/docs/BlockEditor)
Explore the BlockEditor component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/BlockEditor)[View examples](https://app-studio-6167b.web.app/blockeditor)
Inputs
## [Button](https://app-studio-6167b.web.app/docs/Button)
Explore the Button component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Button)[View examples](https://app-studio-6167b.web.app/button)
Layout
## [Card](https://app-studio-6167b.web.app/docs/Card)
Explore the Card component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Card)[View examples](https://app-studio-6167b.web.app/card)
Data Display
## [Carousel](https://app-studio-6167b.web.app/docs/Carousel)
Explore the Carousel component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Carousel)[View examples](https://app-studio-6167b.web.app/carousel)
Layout
## [Center](https://app-studio-6167b.web.app/docs/Center)
Explore the Center component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Center)
Data Display
## [Chart](https://app-studio-6167b.web.app/docs/Chart)
Explore the Chart component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Chart)[View examples](https://app-studio-6167b.web.app/chart)
Experimental
## [Chat](https://app-studio-6167b.web.app/docs/ChatInput)
Explore the Chat component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ChatInput)[View examples](https://app-studio-6167b.web.app/chat)
Experimental
## [ChatWidget](https://app-studio-6167b.web.app/docs/ChatWidget)
Explore the ChatWidget component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ChatWidget)[View examples](https://app-studio-6167b.web.app/chat-widget)
Inputs
## [Checkbox](https://app-studio-6167b.web.app/docs/Checkbox)
Explore the Checkbox component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Checkbox)[View examples](https://app-studio-6167b.web.app/checkbox)
Inputs
## [ColorInput](https://app-studio-6167b.web.app/docs/ColorInput)
Explore the ColorInput component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ColorInput)
Inputs
## [ColorPicker](https://app-studio-6167b.web.app/docs/ColorPicker)
Explore the ColorPicker component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ColorPicker)[View examples](https://app-studio-6167b.web.app/colorpicker)
Inputs
## [ComboBox](https://app-studio-6167b.web.app/docs/ComboBox)
Explore the ComboBox component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ComboBox)[View examples](https://app-studio-6167b.web.app/combobox)
Experimental
## [Command](https://app-studio-6167b.web.app/docs/Command)
Explore the Command component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Command)[View examples](https://app-studio-6167b.web.app/command)
Navigation
## [ContextMenu](https://app-studio-6167b.web.app/docs/ContextMenu)
Explore the ContextMenu component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ContextMenu)[View examples](https://app-studio-6167b.web.app/contextmenu)
Feedback
## [CookieConsent](https://app-studio-6167b.web.app/docs/CookieConsent)
Explore the CookieConsent component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/CookieConsent)[View examples](https://app-studio-6167b.web.app/cookieconsent)
Inputs
## [CountryPicker](https://app-studio-6167b.web.app/docs/CountryPicker)
Explore the CountryPicker component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/CountryPicker)[View examples](https://app-studio-6167b.web.app/countrypicker)
Inputs
## [DatePicker](https://app-studio-6167b.web.app/docs/DatePicker)
Explore the DatePicker component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/DatePicker)[View examples](https://app-studio-6167b.web.app/datepicker)
Experimental
## [Drag and Drop](https://app-studio-6167b.web.app/docs/DragAndDrop)
Explore the Drag and Drop component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/DragAndDrop)[View examples](https://app-studio-6167b.web.app/dragAndDrop)
Layout
## [Drawer](https://app-studio-6167b.web.app/docs/Drawer)
Explore the Drawer component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Drawer)[View examples](https://app-studio-6167b.web.app/drawer)
Navigation
## [DropdownMenu](https://app-studio-6167b.web.app/docs/DropdownMenu)
Explore the DropdownMenu component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/DropdownMenu)[View examples](https://app-studio-6167b.web.app/dropdownmenu)
Experimental
## [DropZone](https://app-studio-6167b.web.app/docs/DropZone)
Explore the DropZone component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/DropZone)[View examples](https://app-studio-6167b.web.app/dropzone)
Experimental
## [EditComponent](https://app-studio-6167b.web.app/docs/EditComponent)
Explore the EditComponent component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/EditComponent)[View examples](https://app-studio-6167b.web.app/edit-component)
Inputs
## [EmojiPicker](https://app-studio-6167b.web.app/docs/EmojiPicker)
Explore the EmojiPicker component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/EmojiPicker)[View examples](https://app-studio-6167b.web.app/emojipicker)
Inputs
## [File](https://app-studio-6167b.web.app/docs/File)
Explore the File component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/File)
Inputs
## [Form](https://app-studio-6167b.web.app/docs/Form)
Explore the Form component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Form)
Inputs
## [Formik](https://app-studio-6167b.web.app/docs/Formik)
Explore the Formik component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Formik)[View examples](https://app-studio-6167b.web.app/formik)
Experimental
## [Gradient](https://app-studio-6167b.web.app/docs/Gradient)
Explore the Gradient component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Gradient)[View examples](https://app-studio-6167b.web.app/gradient)
Layout
## [Horizontal](https://app-studio-6167b.web.app/docs/Horizontal)
Explore the Horizontal component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Horizontal)
Layout
## [HoverCard](https://app-studio-6167b.web.app/docs/HoverCard)
Explore the HoverCard component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/HoverCard)[View examples](https://app-studio-6167b.web.app/hovercard)
Data Display
## [Icon](https://app-studio-6167b.web.app/docs/Icon)
Explore the Icon component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Icon)[View examples](https://app-studio-6167b.web.app/icon)
Inputs
## [IconPicker](https://app-studio-6167b.web.app/docs/IconPicker)
Explore the IconPicker component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/IconPicker)[View examples](https://app-studio-6167b.web.app/iconpicker)
Layout
## [KeyboardAvoidingView](https://app-studio-6167b.web.app/docs/KeyboardAvoidingView)
Explore the KeyboardAvoidingView component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/KeyboardAvoidingView)[View examples](https://app-studio-6167b.web.app/keyboardavoidingview)
Inputs
## [Label](https://app-studio-6167b.web.app/docs/Label)
Explore the Label component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Label)
Navigation
## [Link](https://app-studio-6167b.web.app/docs/Link)
Explore the Link component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Link)[View examples](https://app-studio-6167b.web.app/link)
Feedback
## [Loader](https://app-studio-6167b.web.app/docs/Loader)
Explore the Loader component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Loader)[View examples](https://app-studio-6167b.web.app/loader)
Data Display
## [Markdown](https://app-studio-6167b.web.app/docs/Markdown)
Explore the Markdown component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Markdown)[View examples](https://app-studio-6167b.web.app/markdown)
Navigation
## [Menubar](https://app-studio-6167b.web.app/docs/Menubar)
Explore the Menubar component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Menubar)[View examples](https://app-studio-6167b.web.app/menubar)
Feedback
## [Message](https://app-studio-6167b.web.app/docs/Message)
Explore the Message component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Message)[View examples](https://app-studio-6167b.web.app/message)
Layout
## [Modal](https://app-studio-6167b.web.app/docs/Modal)
Explore the Modal component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Modal)[View examples](https://app-studio-6167b.web.app/modal)
Navigation
## [NavigationMenu](https://app-studio-6167b.web.app/docs/NavigationMenu)
Explore the NavigationMenu component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/NavigationMenu)[View examples](https://app-studio-6167b.web.app/navigationmenu)
Inputs
## [OTP Input](https://app-studio-6167b.web.app/docs/OTPInput)
Explore the OTP Input component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/OTPInput)[View examples](https://app-studio-6167b.web.app/otpinput)
Layout
## [PageLayout](https://app-studio-6167b.web.app/docs/PageLayout)
Explore the PageLayout component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/PageLayout)[View examples](https://app-studio-6167b.web.app/pagelayout)
Navigation
## [Pagination](https://app-studio-6167b.web.app/docs/Pagination)
Explore the Pagination component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Pagination)[View examples](https://app-studio-6167b.web.app/pagination)
Inputs
## [Password](https://app-studio-6167b.web.app/docs/Password)
Explore the Password component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Password)[View examples](https://app-studio-6167b.web.app/password)
Feedback
## [ProgressBar](https://app-studio-6167b.web.app/docs/ProgressBar)
Explore the ProgressBar component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ProgressBar)[View examples](https://app-studio-6167b.web.app/progress-bar)
Layout
## [Resizable](https://app-studio-6167b.web.app/docs/Resizable)
Explore the Resizable component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Resizable)[View examples](https://app-studio-6167b.web.app/resizable)
Navigation
## [Router](https://app-studio-6167b.web.app/docs/Router)
Explore the Router component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Router)[View examples](https://app-studio-6167b.web.app/router)
Inputs
## [Select](https://app-studio-6167b.web.app/docs/Select)
Explore the Select component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Select)[View examples](https://app-studio-6167b.web.app/select)
Inputs
## [Selector](https://app-studio-6167b.web.app/docs/Selector)
Explore the Selector component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Selector)[View examples](https://app-studio-6167b.web.app/selector)
Layout
## [Separator](https://app-studio-6167b.web.app/docs/Separator)
Explore the Separator component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Separator)[View examples](https://app-studio-6167b.web.app/separator)
Utility
## [ShareButton](https://app-studio-6167b.web.app/docs/ShareButton)
Explore the ShareButton component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ShareButton)
Layout
## [Sidebar](https://app-studio-6167b.web.app/docs/Sidebar)
Explore the Sidebar component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Sidebar)[View examples](https://app-studio-6167b.web.app/sidebar)
Inputs
## [Slider](https://app-studio-6167b.web.app/docs/Slider)
Explore the Slider component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Slider)[View examples](https://app-studio-6167b.web.app/slider)
Feedback
## [SplashScreen](https://app-studio-6167b.web.app/docs/SplashScreen)
Explore the SplashScreen component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/SplashScreen)[View examples](https://app-studio-6167b.web.app/splashscreen)
Feedback
## [StatusIndicator](https://app-studio-6167b.web.app/docs/StatusIndicator)
Explore the StatusIndicator component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/StatusIndicator)[View examples](https://app-studio-6167b.web.app/status-indicator)
Inputs
## [Switch](https://app-studio-6167b.web.app/docs/Switch)
Explore the Switch component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Switch)[View examples](https://app-studio-6167b.web.app/switch)
Data Display
## [Table](https://app-studio-6167b.web.app/docs/Table)
Explore the Table component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Table)[View examples](https://app-studio-6167b.web.app/table)
Navigation
## [Tabs](https://app-studio-6167b.web.app/docs/Tabs)
Explore the Tabs component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Tabs)[View examples](https://app-studio-6167b.web.app/tabs)
Inputs
## [TagInput](https://app-studio-6167b.web.app/docs/TagInput)
Explore the TagInput component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/TagInput)[View examples](https://app-studio-6167b.web.app/tagInput)
Data Display
## [Text](https://app-studio-6167b.web.app/docs/Text)
Explore the Text component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Text)
Inputs
## [TextArea](https://app-studio-6167b.web.app/docs/TextArea)
Explore the TextArea component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/TextArea)[View examples](https://app-studio-6167b.web.app/textarea)
Inputs
## [Textfield](https://app-studio-6167b.web.app/docs/TextField)
Explore the Textfield component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/TextField)[View examples](https://app-studio-6167b.web.app/textfield)
Data Display
## [Title](https://app-studio-6167b.web.app/docs/Title)
Explore the Title component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Title)[View examples](https://app-studio-6167b.web.app/title)
Feedback
## [Toast](https://app-studio-6167b.web.app/docs/Toast)
Explore the Toast component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Toast)[View examples](https://app-studio-6167b.web.app/toast)
Inputs
## [Toggle](https://app-studio-6167b.web.app/docs/Toggle)
Explore the Toggle component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Toggle)[View examples](https://app-studio-6167b.web.app/toggle)
Inputs
## [ToggleGroup](https://app-studio-6167b.web.app/docs/ToggleGroup)
Explore the ToggleGroup component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/ToggleGroup)[View examples](https://app-studio-6167b.web.app/togglegroup)
Data Display
## [Tooltip](https://app-studio-6167b.web.app/docs/Tooltip)
Explore the Tooltip component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Tooltip)[View examples](https://app-studio-6167b.web.app/tooltip)
Inputs
## [Upload](https://app-studio-6167b.web.app/docs/Uploader)
Explore the Upload component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Uploader)[View examples](https://app-studio-6167b.web.app/upload)
Layout
## [Vertical](https://app-studio-6167b.web.app/docs/Vertical)
Explore the Vertical component, its variants, and its interactions.
[Reference](https://app-studio-6167b.web.app/docs/Vertical)
---
Source: https://app-studio-6167b.web.app/docs/AspectRatio
@app-studio/components
# AspectRatio
This component ensures its content maintains a specified aspect ratio, adjusting its size responsively while preserving visual proportions.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio.tsx)
## Import
```ts
import { AspectRatio } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Image } from 'app-studio';
import { AspectRatio } from '@app-studio/components';
export const DefaultDemo = () => {
return (
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**AspectRatio**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `ratio` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio/AspectRatio.props.tsx#L6) |
| `views` | `{ container?: ViewProps; center?: ViewProps; view?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio/AspectRatio.props.tsx#L7) |
Common inherited styling props (7)
**AspectRatio inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Background
@app-studio/components
# Background
A comprehensive collection of background effects, including animated particles, gradients, images, and videos.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background.tsx)
## Import
```ts
import { Background } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Background } from '@app-studio/components';
import { Vertical } from 'app-studio';
import { Text } from 'app-studio';
export const DefaultDemo = () => (
Background Component Examples
Aurora Background
Aurora Effect Background
Meteors Effect
Wall Effect
Particles Effect
Grid Effect
Ripples Effect
Background Image
}
>
Image Background with Overlay
Background Gradient
Animated Gradient Background
Multi-color Gradient
Radial Multi-color Gradient
);
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Background**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) |
| `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L14) |
| `shape` | `"square" \| "rounded" \| "pill"` `"square"``"rounded"``"pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) |
| `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) |
| `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) |
| `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) |
Common inherited styling props (7)
**Background inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
### Background.Layout
**Background.Layout**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L33) |
| `views` | `{ container?: ViewProps; content?: ViewProps; back?: ViewProps; front?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L35) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) |
| `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) |
| `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) |
| `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) |
### Background.Aurora
**Background.Aurora**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `showRadialGradient` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L48) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) |
| `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L14) |
| `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) |
| `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) |
| `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) |
| `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) |
### Background.Meteors
**Background.Meteors**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `number` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L52) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L54) |
### Background.Wall
**Background.Wall**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `rows` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L58) |
| `cols` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L60) |
| `squareSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L62) |
### Background.Particles
**Background.Particles**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `count` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L66) |
| `colors` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L68) |
| `speed` | `"slow" \| "medium" \| "fast"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L70) |
| `shapes` | `("circle" \| "square" \| "triangle")[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L72) |
### Background.Grid
**Background.Grid**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `gridSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L76) |
| `lineColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L78) |
| `pulseColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L80) |
| `animationSpeed` | `"slow" \| "medium" \| "fast"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L82) |
### Background.Ripples
**Background.Ripples**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `rippleCount` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L86) |
| `colors` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L88) |
| `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L90) |
| `frequency` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L92) |
### Background.Image
**Background.Image**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `src` Required | `string` | `—` | Source URL of the media.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L97) |
| `backgroundSize` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `auto auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :-----: \| :----: \| :---: \| \| **3** \| **4** \| **5** \| **12** \| **9** \| \| 1 _-x-_ \| \| 3 _-x-_ \| \| \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L99) |
| `backgroundPosition` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `0% 0%` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L101) |
| `backgroundRepeat` | `BackgroundRepeat` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `repeat` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L103) |
| `backgroundAttachment` | `"scroll" \| "fixed" \| "local"` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `scroll` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L105) |
| `imageOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L107) |
| `blendMode` | `BlendMode` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L109) |
| `overlay` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L111) |
| `views` | `{ container?: ViewProps; content?: ViewProps; image?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L113) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) |
| `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) |
| `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) |
| `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) |
| `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) |
### Background.Video
**Background.Video**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `src` Required | `string` | `—` | Source URL of the media.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L125) |
| `autoPlay` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L127) |
| `loop` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L129) |
| `muted` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L131) |
| `playsInline` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L133) |
| `overlay` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L135) |
| `blendMode` | `BlendMode` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L137) |
| `views` | `{ container?: ViewProps; content?: ViewProps; video?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L139) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) |
| `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) |
| `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) |
| `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) |
| `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) |
### Background.Gradient
**Background.Gradient**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `type` | `GradientType` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L17) |
| `direction` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L19) |
| `shape` | `RadialShape` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L21) |
| `position` | `string` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L23) |
| `from` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L25) |
| `to` | `string` | `—` | Destination URL or application route.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L27) |
| `colors` | `ColorStop[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L29) |
| `animate` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L31) |
| `animationDuration` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L33) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L35) |
| `views` | `GradientStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L37) |
### Background.Overlay
**Background.Overlay**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `contentPosition` | `"bottom" \| "left" \| "right" \| "top" \| "center"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L152) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Card
@app-studio/components
# Card
A versatile card component for displaying content in a contained, styled box with support for headers, content, and footers.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card.tsx)
## Import
```ts
import { Card } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Card } from '@app-studio/components';
import { Text } from 'app-studio';
export const DefaultDemo = () => {
return (
This is a default card with simple content.
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Card**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `variant` | `Variant` `"default"``"outlined"``"elevated"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L5) |
| `size` | `Size` `"sm"``"md"``"lg"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L7) |
| `shape` | `Shape` `"square"``"rounded"``"pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L9) |
| `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L11) |
| `header` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L13) |
| `footer` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L15) |
| `isFullWidth` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L17) |
| `views` | `CardStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L19) |
| `config` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L22) |
Common inherited styling props (7)
**Card inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
### Card.Header
**Card.Header**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L26) |
| `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L28) |
### Card.Content
**Card.Content**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L32) |
| `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L34) |
### Card.Footer
**Card.Footer**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L38) |
| `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L40) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Drawer
@app-studio/components
# Drawer
A slide-out panel component that appears from the edge of the screen, with support for different placements, sizes, and content sections.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer.tsx)
## Import
```ts
import { Drawer } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Button, Drawer } from '@app-studio/components';
import { Vertical, Text } from 'app-studio';
export const DefaultDrawer = () => {
const [isOpen, setIsOpen] = useState(false);
return (
setIsOpen(false)}>
setIsOpen(false)}>
Drawer TitleThis is the body of the drawer.
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Drawer**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `placement` | `Placement` `"bottom"``"left"``"right"``"top"` | `—` | Placement relative to its trigger or container.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L6) |
| `side` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L8) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"``"full"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L10) |
| `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L12) |
| `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L14) |
| `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L16) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L18) |
Common inherited styling props (7)
**Drawer inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
### Drawer.Overlay
**Drawer.Overlay**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L44) |
| `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L46) |
| `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L48) |
| `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L50) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L52) |
### Drawer.Container
**Drawer.Container**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `placement` | `Placement` | `—` | Placement relative to its trigger or container.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L56) |
| `size` | `Size` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L58) |
| `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L60) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L62) |
### Drawer.Header
**Drawer.Header**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L66) |
| `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L68) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L70) |
### Drawer.Body
**Drawer.Body**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L74) |
### Drawer.Footer
**Drawer.Footer**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L78) |
### Drawer.Layout
**Drawer.Layout**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `drawers` Required | `{ [key: string]: React.ComponentType; }` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L22) |
| `onShow` | `((name: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L24) |
| `onHide` | `((name?: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L26) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/PageLayout
@app-studio/components
# PageLayout
Compose an application screen with structured header, content, and footer regions.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.tsx)
## Import
```ts
import { PageLayout } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Horizontal, Text, View, Vertical } from 'app-studio';
import { Button, PageLayout } from '@app-studio/components';
/**
* A bordered, fixed-height frame stands in for a device screen so the pinned
* header/footer and scrollable middle are visible in the gallery.
*/
export const DefaultPageLayout = () => (
Pinned Header
}
footer={
}
>
{Array.from({ length: 20 }).map((_, i) => (
Scrollable row {i + 1}
))}
);
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**PageLayout**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `header` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Pinned header rendered above the scrollable content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L13) |
| `footer` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Pinned footer (e.g. a submit bar). It rides above the keyboard on native because it sits inside the keyboard-avoiding region.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L18) |
| `isLoading` | `boolean` | `false` | Replace the content with a centered Loader.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L20) |
| `safe` | `boolean` | `true` | Apply device safe-area insets to the outer container. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L22) |
| `scrollable` | `boolean` | `true` | Make the content area scroll when it overflows. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L24) |
| `dismissKeyboardOnTap` | `boolean` | `true` | Tap an empty area to dismiss the keyboard (native only). Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L26) |
| `keyboardVerticalOffset` | `number` | `0` | Offset for the keyboard-avoiding region, e.g. a fixed header height.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L28) |
| `views` | `PageLayoutViews` | `{}` | Per-slot style overrides.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L30) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L31) |
Common inherited styling props (7)
**PageLayout inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/KeyboardAvoidingView
@app-studio/components
# KeyboardAvoidingView
Keep form content usable when the on-screen keyboard appears. Browser previews illustrate layout; native keyboard behavior depends on the target platform.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.tsx)
## Import
```ts
import { KeyboardAvoidingView } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Text, View, Vertical } from 'app-studio';
import { KeyboardAvoidingView, TextField } from '@app-studio/components';
/**
* On native, focusing a field lifts this content above the keyboard and a tap
* on empty space dismisses it. On web it renders as a plain flex container.
*/
export const DefaultKeyboardAvoidingView = () => (
Tap empty space to dismiss
);
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**KeyboardAvoidingView**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `behavior` | `"height" \| "position" \| "padding"` `"height"``"position"``"padding"` | `—` | How the view reacts to the on-screen keyboard (native only). Defaults to 'padding' on iOS and 'height' on Android — the combination that behaves best in practice. Ignored on web.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L10) |
| `keyboardVerticalOffset` | `number` | `—` | Distance between the top of the keyboard and the focused field (native only) — e.g. to account for a fixed header. Ignored on web.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L15) |
| `dismissOnTap` | `boolean` | `—` | When true, tapping an empty (non-input) area dismisses the keyboard (native only). Web browsers reflow around their own keyboard, so this is a no-op there.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L21) |
| `enabled` | `boolean` | `—` | Enable/disable the avoiding behavior (native only). Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L23) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L24) |
Common inherited styling props (7)
**KeyboardAvoidingView inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/SplashScreen
@app-studio/components
# SplashScreen
Display an application loading or startup screen with configurable content and presentation.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.tsx)
## Import
```ts
import { SplashScreen } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Text, View } from 'app-studio';
import { Button, SplashScreen } from '@app-studio/components';
/**
* Demonstrates the controlled `isLoaded` flow inside a bordered frame. "Reload"
* re-shows the splash; it fades out automatically after ~1.2s.
*/
export const DefaultSplashScreen = () => {
const [loaded, setLoaded] = useState(false);
const [run, setRun] = useState(0);
const start = () => {
setLoaded(false);
setRun((n) => n + 1);
setTimeout(() => setLoaded(true), 1200);
};
return (
App content is ready.
{run > 0 && (
}
/>
)}
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**SplashScreen**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `logo` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Custom logo node. Takes precedence over `logoSrc`.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L6) |
| `logoSrc` | `string` | `—` | Image URL used for the logo when `logo` isn't provided.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L8) |
| `loader` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Custom loading indicator. Defaults to the `Loader` component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L10) |
| `showLoader` | `boolean` | `true` | Show the loading indicator under the logo. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L12) |
| `duration` | `number` | `600` | Exit animation duration in ms (also the unmount delay). Default 600.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L14) |
| `isLoaded` | `boolean` | `—` | Controlled "loaded" flag. When omitted the component reads the shared `useSplashStore`. When the flag flips true, the splash fades out and unmounts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L20) |
| `onHidden` | `(() => void)` | `—` | Called once the exit animation completes and the splash unmounts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L22) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L23) |
Common inherited styling props (7)
**SplashScreen inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Router
@app-studio/components
# Router
Render a route from the shared history store. Navigate between screens and optionally synchronize the browser address bar.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.tsx)
## Import
```ts
import { Router } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Text, Vertical, Horizontal, View } from 'app-studio';
import { Button, Router, useHistory } from '@app-studio/components';
const Home = () => {
const { push } = useHistory();
return (
Home
);
};
const Profile = ({ id }: { id?: string }) => {
const { back, canGoBack } = useHistory();
return (
Profile #{id}
);
};
/**
* A tiny two-screen app driven by the shared history store. On native the
* Android hardware Back button maps to `back()` automatically.
*/
export const DefaultRouter = () => (
Mini Router demo
);
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Router**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `routes` Required | `RouteConfig[] \| Record>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L15) |
| `initialPath` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L17) |
| `notFound` | `React.ComponentType` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L19) |
| `syncBrowserHistory` | `boolean` | `false` | Reflect navigation to the browser URL and honour the browser Back button (web only, default false). Native always honours the hardware Back button.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L24) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/HoverCard
@app-studio/components
# HoverCard
Displays rich content on hover, with customizable trigger and content presentation.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard.tsx)
## Import
```ts
import { HoverCard } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { HoverCard } from '@app-studio/components';
import { Text, Vertical, View } from 'app-studio';
import { Button } from '@app-studio/components';
export const DefaultHoverCard = () => {
return (
Default HoverCard
The React Framework – created and maintained by @vercel.
HoverCard with different positionsThis content appears above the trigger.HoverCard with custom styling
This HoverCard has custom styling with a primary background color-
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**HoverCard**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L6) |
| `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L8) |
| `openDelay` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L15) |
| `closeDelay` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L17) |
### HoverCard.Trigger
**HoverCard.Trigger**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L22) |
| `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L24) |
| `asChild` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L29) |
### HoverCard.Content
**HoverCard.Content**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L36) |
| `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L38) |
| `side` | `"bottom" \| "left" \| "right" \| "top"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L43) |
| `align` | `"start" \| "center" \| "end"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L45) |
| `sideOffset` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L47) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Modal
@app-studio/components
# Modal
A custom content overlay that appears on top of the main screen, with support for headers, bodies, footers, and flexible positioning.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal.tsx)
## Import
```ts
import { Modal } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Button } from '@app-studio/components';
import { Text } from 'app-studio';
import { Modal } from '@app-studio/components';
import { hideModal, showModal } from '@app-studio/components';
export const DefaultModal = () => {
return (
<>
(
Title
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
Cras mattis consectetur purus sit amet fermentum. Cras justo
odio, dapibus ac facilisis in, egestas eget quam. Morbi leo
risus, porta ac consectetur ac, vestibulum at eros. Praesent
commodo cursus magna, vel scelerisque nisl consectetur et.
),
}}
/>
>
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Modal**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `buttonColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L9) |
| `iconSize` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L11) |
| `shape` | `Shape` `"square"``"rounded"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L13) |
| `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L15) |
| `buttonPosition` | `CloseButtonPosition` `"left"``"right"``"none"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L17) |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L19) |
| `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L21) |
| `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L23) |
| `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L25) |
| `position` | `Position` `"bottom"``"left"``"right"``"top"``"center"` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L27) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L29) |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L31) |
| `title` | `string` | `—` | Main title displayed by the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L33) |
Common inherited styling props (7)
**Modal inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
### Modal.Overlay
**Modal.Overlay**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L53) |
| `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L55) |
| `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L57) |
| `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L59) |
| `position` | `Position` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L61) |
| `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L63) |
| `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L65) |
### Modal.Container
**Modal.Container**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L105) |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L110) |
| `shape` | `Shape` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L112) |
| `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L114) |
| `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L116) |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L118) |
| `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L120) |
| `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L122) |
| `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L124) |
| `buttonColor` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L126) |
| `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L128) |
| `position` | `Position` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L130) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L132) |
### Modal.Header
**Modal.Header**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `views` | `{ container?: ViewProps; header?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L70) |
| `buttonColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L77) |
| `iconSize` | `Size` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L79) |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L81) |
| `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L83) |
| `buttonSize` | `Size` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L86) |
| `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L88) |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L90) |
### Modal.Body
**Modal.Body**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `views` | `{ view?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L137) |
| `buttonColor` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L142) |
| `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L144) |
### Modal.Footer
**Modal.Footer**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L149) |
### Modal.Layout
**Modal.Layout**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `modals` Required | `{ [x: string]: React.FC; }` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L95) |
| `onShow` | `((name: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L97) |
| `onHide` | `((name?: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L99) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Resizable
@app-studio/components
# Resizable
A flexible container that allows users to resize its content areas by dragging adjustable dividers.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable.tsx)
## Import
```ts
import { Resizable } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Resizable } from '@app-studio/components';
import { View } from 'app-studio';
import { Text } from 'app-studio';
import { Button } from '@app-studio/components';
import { Horizontal } from 'app-studio';
export const ControlledResizable = () => {
const [sizes, setSizes] = useState([33.33, 33.33, 33.33]);
const handleSizesChange = (newSizes: number[]) => {
setSizes(newSizes);
};
const resetSizes = () => {
setSizes([33.33, 33.33, 33.33]);
};
const maximizeFirst = () => {
setSizes([60, 20, 20]);
};
const maximizeMiddle = () => {
setSizes([20, 60, 20]);
};
const maximizeLast = () => {
setSizes([20, 20, 60]);
};
return (
Current sizes: [{sizes.map((size) => Math.round(size)).join('%, ')}%]
Panel 1
Size: {Math.round(sizes[0])}%
Panel 2
Size: {Math.round(sizes[1])}%
Panel 3
Size: {Math.round(sizes[2])}%
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Resizable**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L13) |
| `orientation` | `Orientation` `"horizontal"``"vertical"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L15) |
| `size` | `Size` `"sm"``"md"``"lg"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L17) |
| `variant` | `Variant` `"default"``"subtle"``"prominent"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L19) |
| `defaultSizes` | `(string \| number)[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L21) |
| `onSizesChange` | `((sizes: number[]) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L23) |
| `minSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L25) |
| `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L27) |
| `collapsible` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L29) |
| `autoSaveId` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L31) |
| `storage` | `ResizableStorage` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L33) |
| `keyboardResizeBy` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L35) |
| `views` | `ResizableStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L37) |
### Resizable.Panel
**Resizable.Panel**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L42) |
| `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L44) |
| `defaultSize` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L46) |
| `minSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L48) |
| `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L50) |
| `collapsible` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L52) |
| `defaultCollapsed` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L54) |
| `onCollapseChange` | `((collapsed: boolean) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L56) |
| `views` | `{ panel?: ViewProps; collapsedPanel?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L58) |
### Resizable.Handle
**Resizable.Handle**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L66) |
| `position` | `HandlePosition` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L68) |
| `disabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L70) |
| `withVisualIndicator` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L72) |
| `withCollapseButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L74) |
| `collapseTarget` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L76) |
| `views` | `{ handle?: ViewProps; handleIcon?: ViewProps; collapseIcon?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L78) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Separator
@app-studio/components
# Separator
A visual element used to divide or group content on a user interface.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator.tsx)
## Import
```ts
import { Separator } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { Separator } from '@app-studio/components';
import { Text } from 'app-studio';
import { Vertical } from 'app-studio';
export const DefaultSeparator = () => {
return (
Default Separator
This is some text above the separator. The separator helps to visually
divide content sections.
This is some text below the separator. Notice how the separator creates
a clear visual distinction between content areas.
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Separator**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `orientation` | `Orientation` `"horizontal"``"vertical"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L10) |
| `variant` | `Variant` `"solid"``"dashed"``"dotted"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L12) |
| `thickness` | `Thickness` `"medium"``"thin"``"thick"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L14) |
| `color` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `` **Initial value**: `canvastext` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **3** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L16) |
| `spacing` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L18) |
| `label` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L20) |
| `decorative` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L22) |
| `views` | `SeparatorStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L24) |
Common inherited styling props (7)
**Separator inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Sidebar
@app-studio/components
# Sidebar
A versatile layout component for navigation or content, typically positioned at the screen edges.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar.tsx)
## Import
```ts
import { Sidebar } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Sidebar } from '@app-studio/components';
import { Button } from '@app-studio/components';
import { Text, Vertical } from 'app-studio';
export function SidebarExample() {
const [page, setPage] = useState('Overview');
return (
Workspace
{['Overview', 'Projects', 'Settings'].map((item) => (
))}
Current page: {page}
);
}
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Sidebar**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L15) |
| `position` | `Position` `"left"``"right"` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L17) |
| `size` | `Size` `"sm"``"md"``"lg"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L19) |
| `variant` | `Variant` `"outline"``"default"``"elevated"``"subtle"``"filled"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L21) |
| `defaultExpanded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L23) |
| `expanded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L25) |
| `onExpandedChange` | `((expanded: boolean) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L27) |
| `fixed` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L29) |
| `hasBackdrop` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L31) |
| `showToggleButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L33) |
| `expandedWidth` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L35) |
| `collapsedWidth` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L37) |
| `breakpoint` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L39) |
| `breakpointBehavior` | `BreakpointBehavior` `"overlay"``"collapse"``"hide"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L41) |
| `elevation` | `Elevation` `"medium"``"none"``"low"``"high"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L43) |
| `transitionPreset` | `TransitionPreset` `"slow"``"fast"``"normal"``"bounce"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L45) |
| `ariaLabel` | `string` | `—` | Accessible name for the control, especially when it has no visible label.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L47) |
| `views` | `SidebarStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L49) |
### Sidebar.Header
**Sidebar.Header**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L55) |
| `showToggleButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L57) |
| `views` | `{ header?: ViewProps; toggleButton?: ViewProps; toggleButtonIcon?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L59) |
### Sidebar.Content
**Sidebar.Content**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L72) |
| `views` | `{ content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L74) |
### Sidebar.Footer
**Sidebar.Footer**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L83) |
| `views` | `{ footer?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L85) |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/BlockEditor
@app-studio/components
# BlockEditor
A Markdown block editor built from App Studio primitives, without an external editor engine.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor.tsx)
## Import
```ts
import { BlockEditor } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { BlockEditor } from '@app-studio/components';
import { Text, Vertical } from 'app-studio';
export function BlockEditorExample() {
const [value, setValue] = useState(
'# Project notes\n\nSelect a block to edit its content.'
);
const [saved, setSaved] = useState('');
return (
setSaved(value)}
/>
{saved ? 'Document saved in this example.' : 'Changes stay local.'}
);
}
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**BlockEditor**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L16) |
| `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L17) |
| `onChange` | `((markdown: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L18) |
| `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L19) |
| `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L20) |
| `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L21) |
| `onSave` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L22) |
| `uploadMedia` | `((file: EditorMediaFile, options: { signal: AbortSignal; }) => Promise)` | `—` | Upload one user-selected file. The application owns storage and authorization.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L24) |
| `pickMedia` | `(() => Promise)` | `—` | Native applications supply their real picker; null means user cancellation.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L29) |
| `generate` | `((prompt: string, fragment: string, scope: "selection" \| "section") => Promise)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L30) |
| `status` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L35) |
| `labels` | View type `Partial<{ document: string; paragraph: string; h1: string; h2: string; h3: string; bullet: string; number: string; quote: string; codeBlock: string; table: string; blocks: string; below: string; duplicate: string; delete: string; up: string; down: string; drag: string; bold: string; italic: string; underline: string; strikethrough: string; code: string; link: string; linkUrl: string; invalidLink: string; media: string; image: string; video: string; mediaUrl: string; mediaDescription: string; mediaSource: string; invalidMedia: string; upload: string; uploading: string; pickingMedia: string; uploadError: string; cancelUpload: string; mediaStale: string; undo: string; redo: string; source: string; visual: string; emoji: string; sourceFallback: string; selectionToolbar: string; askSelection: string; askSection: string; aiPanel: string; instruction: string; generating: string; aiError: string; proposal: string; apply: string; discard: string; cancel: string; retry: string; generate: string; stale: string; selectionRequired: string; save: string; empty: string; }>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L36) |
| `views` | `{ container?: ViewProps; toolbar?: ViewProps; block?: ViewProps; content?: ViewProps; source?: ViewProps; notice?: ViewProps; panel?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L37) |
Common inherited styling props (7)
**BlockEditor inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/AudioInput
@app-studio/components
# Audio Input
Provides a user interface for recording, playing, and uploading audio content.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AudioInput/AudioInput.tsx)
## Import
```ts
import { AudioInput } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { AudioInput } from '@app-studio/components';
import { View, Text, Button } from 'app-studio';
export const Default = () => {
const [audioFile, setAudioFile] = useState(null);
const handleAudio = (file: File) => {
setAudioFile(file);
};
return (
Audio Input Example
{audioFile && (
Recorded Audio: {audioFile.name} (
{(audioFile.size / 1024).toFixed(2)} KB)
Audio preview placeholder
)}
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**AudioInput**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onAudio` Required | `(file: File) => void` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AudioInput/AudioInput/AudioInput.props.ts#L5) |
Common inherited styling props (7)
**AudioInput inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Button
@app-studio/components
# Button
A versatile button component for user interaction with various styles, sizes, shapes, and interactive effects.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button.tsx)
## Import
```ts
import { Button } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Button } from '@app-studio/components';
import { Horizontal, Text } from 'app-studio';
export function ButtonExample() {
const [count, setCount] = useState(0);
return (
{count} actions completed
);
}
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Button**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L19) |
| `to` | `string` | `—` | Destination URL or application route.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L21) |
| `isLoading` | `boolean` | `—` | Displays the loading state.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L23) |
| `loaderProps` | `LoaderProps` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L25) |
| `loaderPosition` | `LoaderPosition` `"left"``"right"` | `'left'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L27) |
| `icon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon rendered alongside the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L29) |
| `iconPosition` | `IconPosition` `"bottom"``"left"``"right"``"top"` | `'left'` | Position of the icon relative to the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L31) |
| `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L33) |
| `isFilled` | `boolean` | `—` | Expands the component to the available width.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L35) |
| `isAuto` | `boolean` | `true` | Sizes the component to fit its content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L37) |
| `isIconRounded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L39) |
| `onClick` | `((...args: any) => any)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L41) |
| `isExternal` | `boolean` | `—` | Opens an external link in a new browsing context.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L43) |
| `isIcon` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L45) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L47) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L49) |
| `shape` | `Shape` `"square"``"rounded"``"pill"` | `'rounded'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L51) |
| `ariaLabel` | `string` | `—` | [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel)[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L53) |
| `variant` | `string` | `'filled'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L56) |
| `animation` | `Animation` `"borderMoving"``"animatedStroke"``"borderReveal"` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. **Syntax**: `#` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :-----: \| :----: \| :----: \| \| **43** \| **16** \| **9** \| **12** \| **10** \| \| 3 _-x-_ \| 5 _-x-_ \| 4 _-x-_ \| \| \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L59) |
| `color` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `` **Initial value**: `canvastext` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **3** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L62) |
| `textColor` | `string` | `—` | Explicit foreground color for the text.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L65) |
| `reversed` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L75) |
| `borderMovingDuration` | `number` | `2` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L78) |
| `borderMovingGradientColors` | `string[]` | `['#705CFF', '#FF5C97', '#FFC75C']` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L79) |
| `animatedStrokeAccentColor` | `string` | `'#705CFF'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L85) |
| `animatedStrokeTextColor` | `string` | `'color-gray-900'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L86) |
| `views` | `{ container?: ViewProps; content?: ViewProps; loader?: ViewProps; icon?: ViewProps; link?: ViewProps; }` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L88) |
| `config` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L95) |
| `keys` | `any[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L97) |
| `label` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L99) |
| `leftIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L101) |
| `rightIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L103) |
| `startIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L105) |
| `endIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L107) |
Common inherited styling props (6)
**Button inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Checkbox
@app-studio/components
# Checkbox
A customizable checkbox form element with optional label and various views.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox.tsx)
## Import
```ts
import { Checkbox } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Checkbox } from '@app-studio/components';
import { Text, Vertical } from 'app-studio';
export function CheckboxExample() {
const [selected, setSelected] = useState(false);
return (
Release notes {selected ? 'included' : 'excluded'}.
);
}
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**Checkbox**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L9) |
| `icon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon rendered alongside the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L10) |
| `error` | `any` | `false` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L11) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L12) |
| `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L13) |
| `isChecked` | `boolean` | `—` | Current checked state. Update it from the onChange callback to keep the control controlled.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L14) |
| `defaultIsSelected` | `boolean` | `false` | Initial checked state when uncontrolled.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L15) |
| `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L16) |
| `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L17) |
| `isIndeterminate` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L18) |
| `labelPosition` | `"left" \| "right"` `"left"``"right"` | `'right'` | Position of the visible label relative to the control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L19) |
| `onChange` | `((checked: boolean) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L23) |
| `onValueChange` | `((checked: boolean) => void)` | `—` | Called when the selected value changes.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L25) |
| `views` | `CheckboxStyles` | `{ checkbox: {}, label: {} }` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L26) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L27) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L28) |
| `infoText` | `string` | `—` | Additional explanatory text displayed with the control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L29) |
Common inherited styling props (7)
**Checkbox inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/ColorPicker
@app-studio/components
# ColorPicker
A customizable color picker component with predefined colors, custom input, recent colors, and various color formats.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker.tsx)
## Import
```ts
import { ColorPicker } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Vertical, Horizontal } from 'app-studio';
import { ColorPicker } from '@app-studio/components';
import { Button } from '@app-studio/components';
import { Text } from 'app-studio';
export const ControlledColorPicker = () => {
const [isOpen, setIsOpen] = useState(false);
const [selectedColor, setSelectedColor] = useState('color-purple-500');
return (
Controlled ColorPicker setIsOpen(true)}
onClose={() => setIsOpen(false)}
closeOnSelect={false}
placeholder="Controlled picker"
/>
Selected color: {selectedColor}
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**ColorPicker**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L13) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L15) |
| `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L17) |
| `placeholder` | `string` | `'Select a color'` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L19) |
| `helperText` | `string` | `—` | Additional guidance displayed with the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L21) |
| `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L23) |
| `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L25) |
| `onChange` | `((color: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L27) |
| `onChangeComplete` | `((color: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L29) |
| `views` | `ColorPickerStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L31) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L33) |
| `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L35) |
| `variant` | `Variant` `"outline"``"default"``"filled"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L37) |
| `error` | `boolean` | `false` | Validation error displayed for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L39) |
| `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L41) |
| `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L43) |
| `predefinedColors` | `PredefinedColor[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L45) |
| `showCustomInput` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L47) |
| `showRecentColors` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L49) |
| `colorFormat` | `ColorFormat` `"hex"``"rgb"``"hsl"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L51) |
| `maxRecentColors` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L53) |
| `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L55) |
| `onOpen` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L57) |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L59) |
| `closeOnSelect` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L61) |
| `aria-label` | `string` | `—` | Defines a string value that labels the current element.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L63) |
| `aria-describedby` | `string` | `—` | Identifies the element (or elements) that describes the object.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L65) |
Common inherited styling props (7)
**ColorPicker inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/ComboBox
@app-studio/components
# ComboBox
A customizable dropdown list with optional search functionality.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox.tsx)
## Import
```ts
import { ComboBox } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { ComboBox } from '@app-studio/components';
export const DefaultDemo = () => {
const items = [
{
value: 'next.js',
label: 'Next.js',
},
{
value: 'sveltekit',
label: 'SvelteKit',
},
{
value: 'nuxt.js',
label: 'Nuxt.js',
},
];
return ;
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**ComboBox**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Height of the trigger, on the shared field scale: `xs` 24, `sm` 32, `md` 40, `lg` 48, `xl` 56. `InputProps['size']` is omitted above because that is the numeric HTML attribute, not a design-system size.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L13) |
| `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L15) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L17) |
| `items` Required | `ComboBoxItem[]` | `—` | Items displayed by the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L19) |
| `onSelect` | `((item: ComboBoxItem \| ComboBoxItem[]) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L21) |
| `searchEnabled` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L23) |
| `left` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L25) |
| `right` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L27) |
| `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L29) |
| `showTick` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L31) |
| `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L33) |
| `views` | `ComboBoxStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L35) |
| `searchPlaceholder` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L37) |
| `isMulti` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L39) |
Common inherited styling props (7)
**ComboBox inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/CountryPicker
@app-studio/components
# CountryPicker
Enables users to select a country from a dropdown list with various styling options.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker.tsx)
## Import
```ts
import { CountryPicker } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { CountryPicker } from '@app-studio/components';
export const DefaultCountryPicker = () => ;
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**CountryPicker**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L14) |
| `error` | `boolean` | `—` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L16) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L18) |
| `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L20) |
| `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L22) |
| `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L24) |
| `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L26) |
| `isAutoFocus` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L28) |
| `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L30) |
| `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L32) |
| `onBlur` | `((event: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L34) |
| `onChange` | `((value: string) => void)` | `—` | Called with the country name the field now holds — either the option that was picked or what the user has typed so far. Never the DOM event, so `e.target.value` is a compile error.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L40) |
| `views` | `CountryPickerStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L42) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L44) |
| `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L46) |
| `variant` | `Variant` `"outline"``"default"``"none"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L48) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L50) |
Common inherited styling props (7)
**CountryPicker inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/DatePicker
@app-studio/components
# DatePicker
A customizable date selection input for user interfaces.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker.tsx)
## Import
```ts
import { DatePicker } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React from 'react';
import { DatePicker } from '@app-studio/components';
export const DefaultDatePicker = () => ;
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**DatePicker**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L10) |
| `error` | `boolean` | `false` | Indicates whether the DatePicker has an error.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L14) |
| `helperText` | `string` | `—` | Additional helper text that provides information about the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L18) |
| `name` | `string` | `—` | The name of the toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L22) |
| `isReadOnly` | `boolean` | `false` | If true, the DatePicker cannot be selected.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L30) |
| `isDisabled` | `boolean` | `false` | If true, the DatePicker will be unusable.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L34) |
| `label` | `string` | `—` | The label text for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L39) |
| `onChange` | `((value: string) => void)` | `—` | Called with the date string the field now holds (`yyyy-mm-dd`) — never the DOM event, so `e.target.value` is a compile error. Typed rather than `any` so a DOM-shaped handler fails to build instead of failing silently.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L45) |
| `onChangeText` | `((text: string) => void)` | `—` | Callback function triggered when the DatePicker value changes for IOS and Android.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L49) |
| `views` | `DatePickerStyles` | `{ container: {}, label: {}, helperText: {}, text: {}, field: {} }` | CSS styles for the DatePicker container and label.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L53) |
| `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | The shape that changes the outlines of the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L57) |
| `variant` | `Variant` `"outline"``"default"``"none"` | `'default'` | Changes the style of the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L61) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | The size that sets the height and width of the DatePicker.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L65) |
| `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Adds a shadow effect to the DatePicker.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L69) |
Common inherited styling props (7)
**DatePicker inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/EmojiPicker
@app-studio/components
# EmojiPicker
A user-friendly tool for selecting and inserting emojis into text inputs or forms.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker.tsx)
## Import
```ts
import { EmojiPicker } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Vertical, Horizontal } from 'app-studio';
import { EmojiPicker } from '@app-studio/components';
import { Button } from '@app-studio/components';
import { Text } from 'app-studio';
export const ControlledEmojiPicker = () => {
const [isOpen, setIsOpen] = useState(false);
const [selectedEmoji, setSelectedEmoji] = useState('🎉');
return (
Controlled EmojiPicker setIsOpen(true)}
onClose={() => setIsOpen(false)}
closeOnSelect={false}
placeholder="Controlled picker"
/>
Selected emoji: {selectedEmoji}
);
};
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**EmojiPicker**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `mode` | `"picker" \| "reaction"` `"picker"``"reaction"` | `'picker'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L12) |
| `trigger` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L13) |
| `quickEmojis` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L14) |
| `selectedEmojis` | `string[]` | `[]` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L15) |
| `labels` | View type `Partial<{ select: string; reaction: string; search: string; more: string; empty: string; categoryEmpty: string; recent: string; smileys: string; people: string; animals: string; food: string; activities: string; travel: string; objects: string; symbols: string; flags: string; }>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L16) |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L18) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L20) |
| `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L22) |
| `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L24) |
| `helperText` | `string` | `—` | Additional guidance displayed with the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L26) |
| `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L28) |
| `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L30) |
| `onChange` | `((emoji: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L32) |
| `onEmojiSelect` | `((emoji: Emoji) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L34) |
| `views` | `EmojiPickerStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L36) |
| `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L38) |
| `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L40) |
| `variant` | `Variant` `"outline"``"default"``"filled"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L42) |
| `error` | `boolean` | `false` | Validation error displayed for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L44) |
| `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L46) |
| `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L48) |
| `showSearch` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L50) |
| `showCategories` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L52) |
| `showRecentEmojis` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L54) |
| `maxRecentEmojis` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L56) |
| `enabledCategories` | `EmojiCategory[]` | `[ 'recent', 'smileys', 'people', 'animals', 'food', 'activities', 'travel', 'objects', 'symbols', 'flags', ]` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L58) |
| `customEmojis` | `Emoji[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L60) |
| `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L62) |
| `onOpen` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L64) |
| `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L66) |
| `closeOnSelect` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L68) |
| `aria-label` | `string` | `—` | Defines a string value that labels the current element.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L70) |
| `aria-describedby` | `string` | `—` | Identifies the element (or elements) that describes the object.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L72) |
Common inherited styling props (7)
**EmojiPicker inherited**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `onClick` | `any` | `—` | Called when the user activates the component. |
| `media` | `Record` | `—` | See the type and source declaration for this property. |
| `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. |
| `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. |
| `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
| `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. |
For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform.
## Usage guidance
- Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility).
- For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library.
- These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences.
---
Source: https://app-studio-6167b.web.app/docs/Formik
@app-studio/components
# Formik
Formik bindings for App Studio fields. Keep validation and submission in Formik while reusing the same labels, variants, and styling props.
[View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Formik/Formik.TextField.tsx)
## Import
```ts
import { FormikForm, FormikTextField, FormikCheckbox } from '@app-studio/components';
```
New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first.
Mount `FormikForm` inside Formik. Bind each field with `name`; the wrappers keep the props of their underlying controls. See the [forms guide](https://app-studio-6167b.web.app/docs/forms) for validation and submission.
## Interactive examples
Try the component, then open Code to copy the complete example.
```jsx
import React, { useState } from 'react';
import { Formik } from 'formik';
import { FormikForm, FormikTextField, FormikCheckbox } from '@app-studio/components';
import { Button } from '@app-studio/components';
import { Text, Vertical } from 'app-studio';
export function FormikExample() {
const [message, setMessage] = useState('');
return (
values.project.trim() ? {} : { project: 'Enter a project name.' }
}
onSubmit={(values, actions) => {
setMessage(`Created: ${values.project}`);
actions.setSubmitting(false);
}}
>
{({ isSubmitting }) => (
{message || 'Complete the form to create a project.'}
)}
);
}
```
## Props
Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults.
**FormikTextField**
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L12) |
| `error` | `any` | `—` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L14) |
| `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L16) |
| `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L18) |
| `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L20) |
| `left` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L22) |
| `right` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable