1.0.0 • Published 1 year ago

@springernature/global-layout-with-sidebar v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Global layout with sidebar

The global-layout-with-sidebar component is a generic layout utility for creating two column layouts where

  • One column is a sidebar with a chosen optimal width
  • The other column takes up the rest of the available space
  • The layout automatically wraps into one column based on a minimum percent-based width for the non-sidebar element

The purpose of the global-layout-with-sidebar is to enable responsive 1-2 column layouts without the necessity of media query breakpoints. It is based on Every Layout’s Sidebar.

Branding

The global-layout-with-sidebar component can be used in any brand context. You just need to import the component itself:

@import '@springernature/global-layout-with-sidebar/scss/10-settings/default';
@import '@springernature/global-layout-with-sidebar/scss/50-components/layout-with-sidebar';

Usage

Default settings

Using the default settings, the l-with-sidebar element will be 400px in the 2-column configuration. Both columns grow to 100% width of their parent l-with-sidebar where they wrap into 1 column. By default, this happens when the non-sidebar (“Main content” below) becomes less than 50% of the total width.

<div class="l-with-sidebar">
    <div>
        Main content
    </div>
    <div class="l-with-sidebar__sidebar">
        Sidebar content
    </div>
</div>

Sidebar on left

Somewhat unconventional, but the component can take it!

<div class="l-with-sidebar">
    <div class="l-with-sidebar__sidebar">
        Sidebar content
    </div>
    <div>
        Main content
    </div>
</div>

Custom settings

The global-layout-with-sidebar component’s settings are mapped to CSS custom properties, meaning you can alter them inline.

In the following example, the gap between the columns is 2em, the 1-column layout is triggered when the main content goes under 66.666%, and the sidebar is 300px wide in the 2-column layout.

<div class="l-with-sidebar" style="--with-sidebar--gap: 2em">
    <div style="--with-sidebar--min: 66.666%">
        Main content
    </div>
    <div class="l-with-sidebar__sidebar" style="--with-sidebar--basis: 300px">
        Sidebar content
    </div>
</div>

Note that these custom values will not take effect in IE11, which retains the original values, with no impact on the accessibility of the content.

1.0.0

1 year ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.0

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago