Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
scroll-shadow-element
Advanced tools
A small web component to enhance scrollable elements with dynamic scroll indicators.
A small web component to enhance scrollable elements with dynamic scroll indicators.
npm install scroll-shadow-element
Import the module as part of your app bundle, or with a script tag.
import 'scroll-shadow-element'
<script type="module" src="./node_modules/scroll-shadow-element/dist/index.js"></script>
<!-- unpkg CDN -->
<script type="module" src="https://unpkg.com/scroll-shadow-element"></script>
<!-- Skypack CDN -->
<script type="module" src="https://cdn.skypack.dev/scroll-shadow-element"></script>
<!-- Skypack CDN (minified) -->
<script type="module" src="https://cdn.skypack.dev/scroll-shadow-element?min"></script>
Wrap any element for dynamically added scroll indicators. For example:
<scroll-shadow>
<nav>Long navigation…</nav>
</scroll-shadow>
Note When wrapping a non-scrollable
<table>
element, then its first<tbody>
will be used.
You can change the default appearance with CSS.
scroll-shadow {
display: inline-block;
--scroll-shadow-size: 14;
--scroll-shadow-top: radial-gradient(farthest-side at 50% 0%, #0003, #0000);
--scroll-shadow-bottom: radial-gradient(farthest-side at 50% 100%, #0003, #0000);
--scroll-shadow-left: radial-gradient(farthest-side at 0%, #0003, #0000);
--scroll-shadow-right: radial-gradient(farthest-side at 100%, #0003, #0000);
}
@media (prefers-color-scheme: dark) {
scroll-shadow {
--scroll-shadow-top: radial-gradient(farthest-side at 50% 0%, #fff3, #0000);
--scroll-shadow-bottom: radial-gradient(farthest-side at 50% 100%, #fff3, #0000);
--scroll-shadow-left: radial-gradient(farthest-side at 0%, #fff3, #0000);
--scroll-shadow-right: radial-gradient(farthest-side at 100%, #fff3, #0000);
}
}
Property | Description | Syntax |
---|---|---|
--scroll-shadow-size | Sets the maximum size of the scroll indicators | <integer> |
--scroll-shadow-top | Controls the appearance of the top scroll indicator | none | <image> |
--scroll-shadow-bottom | Controls the appearance of the bottom scroll indicator | none | <image> |
--scroll-shadow-left | Controls the appearance of the left scroll indicator | none | <image> |
--scroll-shadow-right | Controls the appearance of the right scroll indicator | none | <image> |
scroll-shadow-element
works in all major browsers: all browsers that support
Custom Elements, Resize Observer and the
min()
CSS function. In older browsers, the element just
won’t add scroll indicators.
The package is written with ES6 syntax. If you need to support older browsers, you can configure your bundler to compile it to ES5 syntax.
{
"jest": {
"moduleNameMapper": {
"^scroll-shadow-element$": "jest-transform-stub"
}
}
}
Jest doesn’t fully support ES modules: Depending on your
configuration, you might see SyntaxError: Unexpected token 'export'
along
with a few hints in the error output. Jest’s "moduleNameMapper"
option can be used to stub the module out. You can use
any empty module, or jest-transform-stub
.
<scroll-shadow>
is inspired by Lea Verou’s great pure CSS scrolling shadows
technique with background-attachment: local
.
The main motivation to create a custom element was to find a solution to have the shadows above the content and independent of the element’s background. If you don’t have these requirements, the pure CSS technique might work for you too.
npm install
to install dependenciesnpm test -- --update-visual-baseline
to create local visual regression test baseline imagesnpm test
to run testsnpm start
to open a demo page for manual testingnpm run lint
to run linting checksnpm run lint:fix
to fix linting issuesnpm run build
to buildDistributed under the terms of the MIT license. See LICENSE for details.
[2.0.5] (March 28, 2023)
FAQs
A small web component to enhance scrollable elements with dynamic scroll indicators.
The npm package scroll-shadow-element receives a total of 1,101 weekly downloads. As such, scroll-shadow-element popularity was classified as popular.
We found that scroll-shadow-element demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.