1.8.2 • Published 1 year ago

@inotom/sws-drawer v1.8.2

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

sws-drawer

A web Components to add drawer element.

Demo

Demo

Usage

Place sws-drawer sws-drawer-toggle-button sws-drawer-close-button custom element.

<sws-drawer-toggle-button>
  Toggle Button
</sws-drawer-toggle-button>
<sws-drawer>
  <sws-drawer-close-button>
  Close Button
  </sws-drawer-close-button>
  <p>
    Content
  </p>
</sws-drawer>
<script type="module" src="sws-drawer.min.js" defer></script>

Set element's style by css custom properties.

sws-drawer {
  --sws-drawer-position: fixed;
  --sws-drawer-top: 0;
  --sws-drawer-right: 0;
  --sws-drawer-bottom: 0;
  --sws-drawer-left: 0;
  --sws-drawer-z-index: 1000;
  --sws-drawer-width: 80%;
  --sws-drawer-visibility: hidden;
  --sws-drawer-opacity: 0;
  --sws-drawer-main-position: absolute;
  --sws-drawer-main-top: 0;
  --sws-drawer-main-bottom: 0;
  --sws-drawer-main-left: calc(100% - var(--sws-drawer-width));
  --sws-drawer-main-overflow-x: visible;
  --sws-drawer-main-overflow-y: auto;
  --sws-drawer-main-overscroll-behavior: contain;
  --sws-drawer-box-shadow: -2px 0 4px rgba(0, 0, 0, 0.2);
  --sws-drawer-color: currentColor;
  --sws-drawer-background: #fff;
  --sws-drawer-layer-color: currentColor;
  --sws-drawer-layer-background: rgba(0, 0, 0, 0.5);
  --sws-drawer-layer-backdrop-filter: blur(5px);
  --sws-drawer-animation-speed: 0.3s;
  --sws-drawer-translate: translate3d(100%, 0, 0);
  --sws-drawer-transition-hide: visibility 0s linear var(--sws-drawer-animation-speed),
    opacity 0s linear var(--sws-drawer-animation-speed);
  --sws-drawer-transition-show: visibility 0s, opacity 0s;
}

sws-drawer-toggle-button {
  --sws-drawer-toggle-button-display: inline-block;
  --sws-drawer-toggle-button-appearance: none;
  --sws-drawer-toggle-button-width: auto;
  --sws-drawer-toggle-button-height: initial;
  --sws-drawer-toggle-button-margin: 0;
  --sws-drawer-toggle-button-padding: 0;
  --sws-drawer-toggle-button-color: currentColor;
  --sws-drawer-toggle-button-background: transparent;
  --sws-drawer-toggle-text-align: center;
  --sws-drawer-toggle-button-border: 0 none;
  --sws-drawer-toggle-button-font-size: inherit;
  --sws-drawer-toggle-button-font-family: inherit;
  --sws-drawer-toggle-button-cursor: inherit;
}

sws-drawer-close-button {
  --sws-drawer-close-button-display: inline-block;
  --sws-drawer-close-button-appearance: none;
  --sws-drawer-close-button-width: auto;
  --sws-drawer-close-button-height: initial;
  --sws-drawer-close-button-margin: 0;
  --sws-drawer-close-button-padding: 0;
  --sws-drawer-close-button-color: currentColor;
  --sws-drawer-close-button-background: transparent;
  --sws-drawer-close-text-align: center;
  --sws-drawer-close-button-border: 0 none;
  --sws-drawer-close-button-font-size: inherit;
  --sws-drawer-close-button-font-family: inherit;
  --sws-drawer-close-button-cursor: inherit;
}

CSS custom properties

sws-drawer

css custom property namecontentdefaults
--sws-drawer-positionPosition propertyfixed
--sws-drawer-topPosition top property0
--sws-drawer-rightPosition right property0
--sws-drawer-bottomPosition bottom property0
--sws-drawer-leftPosition left property0
--sws-drawer-z-indexPosition z-index property1000
--sws-drawer-widthWidth property80%
--sws-drawer-visibilityVisibility propertyhidden
--sws-drawer-opacityOpacity property0
--sws-drawer-positionPosition propertyabsolute
--sws-drawer-main-topContent element position top property0
--sws-drawer-main-bottomContent element position bottom property0
--sws-drawer-main-leftContent element position left propertycalc(100% - var(--sws-drawer-width))
--sws-drawer-main-overflow-xContent element overflow-x propertyvisible
--sws-drawer-main-overflow-yContent element overflow-y propertyauto
--sws-drawer-main-overscroll-behaviorContent element overscroll-behavior propertycontain
--sws-drawer-box-shadowContent element box-shadow property-2px 0 4px rgba(0, 0, 0, 0.2)
--sws-drawer-colorContent element color propertycurrentColor
--sws-drawer-backgroundContent element background property#fff
--sws-drawer-layer-colorBackground layer color propertycurrentColor
--sws-drawer-layer-backgroundBackground layer background propertyrgba(0, 0, 0, 0.5)
--sws-drawer-layer-backdrop-filterBackground layer blur size propertyblur(5px)
--sws-drawer-animation-speedAnimation speed property0.3s
--sws-drawer-translateDrawer initial translated propertytranslate3d(100%, 0, 0)
--sws-drawer-transition-hideHide transition propertyvisibility 0s linear var(--sws-drawer-animation-speed), opacity 0s linear var(--sws-drawer-animation-speed)
--sws-drawer-transition-showShow transition propertyvisibility 0s, opacity 0s

sws-drawer-toggle-button

css custom property namecontentdefaults
--sws-drawer-toggle-button-displayButton element display propertyinline-block
--sws-drawer-toggle-button-appearanceButton element appearance propertynone
--sws-drawer-toggle-button-widthButton element width propertyauto
--sws-drawer-toggle-button-heightButton element height propertyinitial
--sws-drawer-toggle-button-marginButton element margin property0
--sws-drawer-toggle-button-paddingButton element padding property0
--sws-drawer-toggle-button-colorButton element color propertycurrentColor
--sws-drawer-toggle-button-backgroundButton element background propertytransparent
--sws-drawer-toggle-text-alignButton element text alignment propertycenter
--sws-drawer-toggle-button-borderButton element border property0 none
--sws-drawer-toggle-button-font-sizeButton element font-size propertyinherit
--sws-drawer-toggle-button-font-familyButton element font-family propertyinherit
--sws-drawer-toggle-button-cursorButton element cursor propertyinherit

sws-drawer-close-button

css custom property namecontentdefaults
--sws-drawer-close-button-displayButton element display propertyinline-block
--sws-drawer-close-button-appearanceButton element appearance propertynone
--sws-drawer-close-button-widthButton element width propertyauto
--sws-drawer-close-button-heightButton element height propertyinitial
--sws-drawer-close-button-marginButton element margin property0
--sws-drawer-close-button-paddingButton element padding property0
--sws-drawer-close-button-colorButton element color propertycurrentColor
--sws-drawer-close-button-backgroundButton element background propertytransparent
--sws-drawer-close-text-alignButton element text alignment propertycenter
--sws-drawer-close-button-borderButton element border property0 none
--sws-drawer-close-button-font-sizeButton element font-size propertyinherit
--sws-drawer-close-button-font-familyButton element font-family propertyinherit
--sws-drawer-close-button-cursorButton element cursor propertyinherit

Options

<sws-drawer-toggle-button
  status-key="is-sws-drawer-active"
  body-top-key=""
  x-tabindex="0"
  group-keys="['is-sws-drawer-active', 'is-sws-drawer-active-other']"
>
  Toggle Button
</sws-drawer-toggle-button>

<sws-drawer
  status-key="is-sws-drawer-active"
  body-top-key=""
>
  <sws-drawer-close-button
    status-key="is-sws-drawer-active"
    body-top-key=""
    x-tabindex="0"
  >
  Close Button
  </sws-drawer-close-button>
  <p>
    Content
  </p>
</sws-drawer>

If the body-top-key property is not set, the position top of the body tag will not change.

sws-drawer

option namecontentdefaults
status-keyChange active status attribute name of root element.is-sws-drawer-active
body-top-keyChange the position top of the body tag on browsers that do not support overscroll-behavior.

sws-drawer-toggle-button

option namecontentdefaults
status-keyChange active status attribute name of root element.is-sws-drawer-active
body-top-keyChange the position top of the body tag on browsers that do not support overscroll-behavior.
x-tabindexButton element tabindex attribute value.0
group-keysArray of status-key string. Limit the number of active Drawers to one.[]

sws-drawer-close-button

option namecontentdefaults
status-keyChange active status attribute name of root element.is-sws-drawer-active
body-top-keyChange the position top of the body tag on browsers that do not support overscroll-behavior.
x-tabindexButton element tabindex attribute value.0

License

MIT

Author

inotom

1.8.2

1 year ago

1.8.1

1 year ago

1.8.0

1 year ago

1.8.0-beta.1

1 year ago

1.8.0-beta.2

1 year ago

1.7.0

2 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.2.0

3 years ago

1.3.0

3 years ago

1.1.2

3 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago