npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@spdesign/dhl-design-components

v1.0.3

Published

DHL Design Components

Downloads

5

Readme

DHL Design Components

Design Component Library for digital DHL products build with Fractal.

Development Process

Setting up your development environment

You'll need a recent version of nodejs to work on DHL Design Components. We use the LTS node version. You can use nvm to easily install and manage different versions of node on your system.

node -v
# or
nvm current

Code editor recommendations

We recommend to use VS Code as editor, with the following plugins:

Linting and code styling
Code formmatting

Prettier to format our code. Activate ESLint and Stylelint integration in VS Code Settings:

"prettier.eslintIntegration": true,
"prettier.stylelintIntegration": true,
Template language

Twig Language 2, because we use Twig template engine for our Fractal templates. Also activate Emmet HTML support in Twig files in VS Code Settings:

"emmet.includeLanguages": {
	"twig": "html"
},

Checking out repository

NOTE: If you expect to commit updated or new dependencies, please ensure you are using npm 5, which will also update package-lock.json correctly when you install or upgrade packages.

Once node is installed, clone the repo and run npm install

git clone [email protected]:strichpunkt-design/dhl-design-components.git
cd dhl-design-components
npm i

Running development server

npm run start
open http://localhost:3000

npm run start runs a Fractal development server instance with BrowserSync integration and Webpack HMR support with webpack-dev-middleware 🤓 This should aid you in initial development of a component. It's served on port 3000. If you are running another browser-sync instance already, check out higher ports like 3003.

Building Components

Each component requires the following items in order to be complete:

  • A template file which provides the component's markup using the Twig template engine. Filename: component-name.twig
  • A component class using vanilla JS and SCSS. Filename: component-name.{js,scss}
  • A README which contains developer documentation on the component, including usage. Filename: README.md
  • Optional: A component configuration which provides additional data, defines variants and determines how Fractal handles the component. There are a number of configuration options you can set. Filename: component-name.config.js

To ensure a consistent structure run npm run generate and enter the component name to create all component files. Enter the component name as follows:

  • Use Kebab Case (example-component-name)
  • Only lowercase letters [a-z] and dashes are allowed
npm run generate
? Pattern name: example-component-name

You'll find additional information about how Fractal handles components in the Fractal documentation.

Multi Brand Support

Only add styles if they are not yet defined in the base SCSS and cannot be set using a SCSS variable. Think of "extending" the base not "overriding" when you add new styles in this file.

Submitting Pull Requests

🚧 TODO: Complete Pull Request documentation

Commit message conventions

When commiting or submitting PRs, make sure you're following our commit message conventions (which are the same as angular's); our commit-msg hook should automatically enforce this.

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

🚧 TODO: Add commit message examples

Type

Must be one of the following:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • refactor: A code change that neither fixes a bug nor adds a feature
  • perf: A code change that improves performance
  • test: Adding missing or correcting existing tests
  • chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

Scope

The scope could be anything specifying place of the commit change. For example ComponentName, page-test, webpack, package, linting, ...

You can use * when the change affects more than a single scope.

Subject

The subject contains succinct description of the change:

  • use the imperative, present tense: "change" not "changed" nor "changes"
  • don't capitalize first letter
  • no dot (.) at the end

🚧 TODO: Recommend commitizen?

Dependencies

Polyfills and Ponyfills

| Polyfill | Description | Included in library | | -------- | ----------- | ------------------- | | IntersectionObserver Polyfill | Add support for the native IntersectionObserver API. | nope | | ResizeObserver Polyfill | Add support for the native ResizeObserver API. Used as Ponyfill. | yep | | Smoothscroll Polyfill | Add support for scroll-behavior | nope | | focus-visible | Add support for CSS :focus-visible | yep |