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

@axodotdev/fringe

v0.0.11

Published

Fringe is the Axo design system and component library.

Downloads

263

Readme

fringe

Fringe is the Axo design system and component library.

Using Fringe in Your Project

Fringe has two main sections: the lib directory, which contains the components themselves and the app contained in src, which documents the components and provides a development sandbox.

Viewing Components

To see which components are available and examples of their variations, in both dark and light mode, run Fringe locally:

# Start a dev server, see logs for address/port
# (usually http://localhost:5173/):
yarn dev

| dark | light | |--------|-------| | darkmode example | lightmode example |

Importing Components

All apps can import from Fringe using

import COMPONENT from "@axodotdev/fringe/lib/COMPONENT";

Thanks to the magic of TurboRepo, apps within the turbo-axo repository will always point to the most updated code. Apps in different repositories will of course need to point to a new release to get new features.

See the release section for more about releasing a new version.

Using the Full System: Tailwind

While the components themselves contain all the information they need to be used in an app, the colors, typography, and other design system aspects also rely on the styles defined in src/assets/main.css and tailwind.config.js.

To include this in your app, import from the package's tailwind.config:

const {
  plugins,
  theme,
  darkMode,
} = require("@axodotdev/fringe/tailwind.config");

module.exports = {
  content:[
    /* this lines gets styles from uncompiled Vue components */,
    "./node_modules/@axodotdev/fringe/lib/*.vue",
    /* other, app-specific config */,
  ],
  theme,
  plugins,
  darkMode,
};

Development

This is a Vue 3 application that uses Node 18 and yarn for development and is deployed as an NPM package.

#Start a dev server, see logs for address/port:
yarn dev

#Build the application for production:
yarn build

#Locally preview production build:
yarn preview

Working Locally

When working on a component in conjunction with work for a repository outside the TurboRepo, it is recommended to use yarn link to make changes in package and app simple to keep together.

⚠️ Don't forget to push both branches, though!

(Note: The documentation points to the classic docs, but they are bit more explanatory and still correct for this feature.)

Guidelines

A few good rules for developing a component for Fringe.

  • Do it! If this is something we want consistent across apps, put it here.
  • Develop the component in the Fringe display page first and look at it in light and dark modes.
  • Don't use scoped styles — rather add classes that do not exist in Tailwind to src/assets/main.css, so that things like animations and timings, etc., are easily kept consistent across components and apps.
  • If you add a component for something you know exists in other apps, try to replace it at the same time — while we are still on the small side, this is a small step that will pay dividends later.

Release

To keep churn as low as possible, new versions of Fringe should only be cut if a new release of an app depends on the new feature. That said, don't let the desire to avoid a new version prevent you from back-porting functionality that is or should be shared by multiple apps.

When you are ready to release a version, follow the checklist.