Separator
Visually or semantically separates content.
Destyler UI
unstyled component for vue.
Blog
Docs
Source
Destyler UI
unstyled component for react.
Blog
Docs
Source
Destyler UI
unstyled component for svelte.
Blog
Docs
Source
Destyler UI
unstyled component for solid.
Blog
Docs
Source
Features
Install
Install the component from your command line.
Anatomy
Import all parts and piece them together.
<script setup lang="ts">import * as separator from '@destyler/separator'import { normalizeProps, useMachine } from "@destyler/vue"import { computed, useId, ref } from "vue"
const [state, send] = useMachine(separator.machine({ id: useId() }))const api = computed(() => separator.connect(state.value, send, normalizeProps),)</script>
<template> <div v-bind="api.getRootProps()"/></template>
import { normalizeProps, useMachine } from '@destyler/react'import * as separator from '@destyler/separator'import { useId } from 'react'
export default function Divider() {
const [state, send] = useMachine(separator.machine({ id: useId() })) const api = separator.connect(state, send, normalizeProps)
return ( <div {...api.getRootProps()} /> )}
<script lang="ts"> import * as separator from '@destyler/separator' import { normalizeProps, useMachine } from "@destyler/svelte"
const id = $props.id()
const [state, send] = useMachine(separator.machine({ id })) const api = $derived(separator.connect(state, send, normalizeProps))</script>
<div {...api.getRootProps()} ></div>
import * as separator from '@destyler/separator'import { normalizeProps, useMachine } from '@destyler/solid'import { createMemo } from 'solid-js'
export default function Divider() {
const [state, send] = useMachine(separator.machine({ id: crypto.randomUUID() })) const api = createMemo(() => separator.connect(state, send, normalizeProps))
return ( <div {...api().getRootProps()} /> )}
Setting a orientation value
const [state, send] = useMachine( separator.machine({ id: createUniqueId(), orientation: 'vertical', // default 'horizontal' }),)
Setting specific orientation values
<script setup lang="ts">import * as separator from '@destyler/separator'import { normalizeProps, useMachine } from "@destyler/vue"import { computed, useId, ref } from "vue"
const [state, send] = useMachine(separator.machine({ id: useId() }))const api = computed(() => separator.connect(state.value, send, normalizeProps),)</script>
<template> <div v-bind="api.getRootProps()"/> <div v-bind="api.getRootProps('vertical')"/></template>
import { normalizeProps, useMachine } from '@destyler/react'import * as separator from '@destyler/separator'import { useId } from 'react'
export default function Divider() {
const [state, send] = useMachine(separator.machine({ id: useId() })) const api = separator.connect(state, send, normalizeProps)
return ( <div {...api.getRootProps()} /> <div {...api.getRootProps('vertical')} /> )}
<script lang="ts"> import * as separator from '@destyler/separator' import { normalizeProps, useMachine } from "@destyler/svelte"
const id = $props.id()
const [state, send] = useMachine(separator.machine({ id })) const api = $derived(separator.connect(state, send, normalizeProps))</script>
<div {...api.getRootProps()} ></div><div {...api.getRootProps('vertical')} ></div>
import * as separator from '@destyler/separator'import { normalizeProps, useMachine } from '@destyler/solid'import { createMemo } from 'solid-js'
export default function Divider() {
const [state, send] = useMachine(separator.machine({ id: crypto.randomUUID() })) const api = createMemo(() => separator.connect(state, send, normalizeProps))
return ( <div {...api().getRootProps()} /> <div {...api().getRootProps('vertical')} /> )}
Styling guide
Earlier, we mentioned that each Select part has a
data-part
attribute added to them to select and style them in the DOM.
[data-part="root"][data-orientation="horizontal"] { /* Styles for the root part */}
Methods and Properties
Machine Context
The separator machine exposes the following context properties:
ids
Partial<{ root: string; }>
The ids of the elements in the separator. Useful for composition.
orientation
"vertical" | "horizontal"
The orientation of the separator
id
string
The unique identifier of the machine.
getRootNode
() => ShadowRoot | Node | Document
A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.
Machine API
The separator api
exposes the following methods:
isVertical
boolean
Whether the separator is vertical
Data Attributes
Root
name
desc
data-scope
separator
data-part
root
data-orientation
The orientation of the separator