Socket
Socket
Sign inDemoInstall

@highlight-ui/layout

Package Overview
Dependencies
7
Maintainers
10
Versions
36
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @highlight-ui/layout

A collection of layout helper components.


Version published
Weekly downloads
2.8K
increased by38.28%
Maintainers
10
Created
Weekly downloads
 

Readme

Source

npm storybook.personio.design

@highlight-ui/layout

Layout components are used to manage the white space between components and other elements. They produce visual consistency across Personio products by using a limited set of standardised spacing tokens. This also removes the hassle of space-management from the user.

Features

  • Vertical spacing
    • Controlled by spacing tokens
  • Horizontal spacing
    • Controlled by spacing tokens
    • Horizontal and vertical alignment based on flex values
    • Toggle to allow wrapping

Installation

Using npm:

npm install @highlight-ui/layout

Using yarn:

yarn add @highlight-ui/layout

Using pnpm:

pnpm install @highlight-ui/layout

Remember to import the styles in your (S)CSS file, like so:

@import url('@highlight-ui/layout');

Usage

Stack

The Stack component manages the vertical spacing between elements.

In your TypeScript file:

import { Stack, StackProps } from '@highlight-ui/layout';
<Stack space="spacing-4">
  <Placeholder>Item 1</Placeholder>
  <Placeholder>Item 2</Placeholder>
  <Placeholder>Item 3</Placeholder>
</Stack>
Props 📜
PropTypeRequiredDefaultDescription
spaceSpacingTypeNospacing-0The spacing applied to the children.
classNamestringNonullClassname to apply to the element.
metadataComponentMetadataNonullObject used for testing. Contains testId and actionName.
childrenReact.ReactNodeNonullComponents to apply spacing between.

Inline

The Inline component manages the horizontal spacing between elements. In addition to this, this component can also control the alignment of the items (both vertically and horizontally).

In your TypeScript file:

import { Inline, InlineProps } from '@highlight-ui/layout';
<Inline space="spacing-4" align="center">
  <Placeholder>Item 1</Placeholder>
  <Placeholder>Item 2</Placeholder>
  <Placeholder>Item 3</Placeholder>
  <Placeholder>Item 4</Placeholder>
  <Placeholder>Item 5</Placeholder>
</Inline>
Props 📜
PropTypeRequiredDefaultDescription
spaceSpacingTypeNospacing-0The spacing applied to the children.
alignHorizontalAlignmentTypeNostartHorizontal alignment of the items.
alignVerticalVerticalAlignmentTypeNostartVertical alignment of the items.
wrapbooleanNofalseWhether to wrap the items when their width exceeds the container width.
classNamestringNonullClassname to apply to the element.
metadataComponentMetadataNonullObject used for testing. Contains testId and actionName.
childrenReact.ReactNodeNonullComponents to apply spacing between.

Shared types

TypeValues
SpacingTypespacing-0, spacing-0-5, spacing-1, spacing-2, spacing-3, spacing-4, spacing-5, spacing-6, spacing-8, spacing-10, spacing-12, spacing-16, spacing-20, spacing-24, spacing-32
HorizontalAlignmentTypestart, center, end, space-between, space-around, space-evenly
VerticalAlignmentTypestart, center, end, baseline, stretch

Testing

This example serves as starting point on how you can use these layout components as part of your tests.

Certain props are already defined in the renderInline (or renderStack) method, to reuse through individual tests. Any props can be overriden by passing these to the above function.

const testId = 'test-inline';
const metadata = { testId };

function renderInline(props?: Partial<InlineProps>) {
  render(
    <Inline {...props} metadata={metadata}>
      <p>Item 1</p>
      <p>Item 2</p>
    </Inline>,
  );
  return screen.getByTestId(testId);
}

Place in design system 💻

These layout components are not yet used within the highlight-ui library. They are still being develiped to be initially used within the following organisms:

Contributing 🖌️

If you're interested in contributing, please visit our contribution page.

FAQs

Last updated on 23 Feb 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc