Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@highlight-ui/layout

Package Overview
Dependencies
Maintainers
9
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@highlight-ui/layout

A collection of layout helper components.

  • 0.4.0
  • npm
  • Socket score

Version published
Weekly downloads
1.1K
increased by3.67%
Maintainers
9
Weekly downloads
 
Created
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');

Getting started

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.
alignAlignmentTypeNostartHorizontal alignment of the items.
alignVerticalAlignmentTypeNostartVertical 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
AlignmentTypestart, center, end

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

Package last updated on 26 Apr 2023

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc