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

@planning-center/topbar

v0.0.18

Published

Planning Center application Topbar

Downloads

119

Readme

TOPBAR

Planning Center application Topbar

Status

This project is under rapid high-level development. The immediate goal is to land on a flexble, stable API for all apps to move forward with new search and notifications implementations.

Helpful review and feedback

API and implementation feedback is very helpful. Feel free to file an issue or hit me up on slack. If you have an opinion on implementation, now is the time to voice it.

Because this project touches all apps, there are many stakeholders. Implementation details consider past, present, and future interests and make trade-offs accordingly. Please don't be discouraged if your feedback is dismissed because of interest and critia that aren't generally known.

Please withhold byte-splitting and micro-optimization feedback until the API is stabalized. v1 will marke the stability of the component API and be a good time to circle back on performance optimizations.

Design desicions

There is no Topbar

There is no single Topbar. Each app has it's own composition of Topbar components that create that apps topbar.

Each team owns their Topbar

The goal of the new topbar is to empower app teams to develop search and notifications. Topbar is opinionated only about the placement of those components, not implementation. This lends Topbar to have a mix of composeable and replaceable components.

Composeable and replaceable

Topbar is implemented in a "2 + 2" manner. It's a bunch of pieces that can be used or not as each app needs.

The two opinionated components are SmallTopbar and NotSmallTopbar. These are where the bulk of the non-negotiable decisions lie—sacred cows, if you will.

Topbar and SmallTopbar can be implemented simply by supplying them with the right props. AppsProvider, ConnectedPeopleProvider, DisplaySwitch and others can be reimplemented to fit app needs.

Trade-offs

No dynamicic application support

Apps are currently hard-coded with icons, badges, and lockups. This means that an App can't use Topbar before support is explicitely added. Given that the apps is currently a fixed list and that the icons, badges, and lockups require design, this was an acceptable trade-off.

No Drop-in ease

This Topbar is not a drop-in

Initial render

The previous Topbar was a Rails view. This one is not. It was decided early that Topbar should exist in one language and library to limit complexity and reduce platform interest. Consiquently, there might be some early "initial render" delays. We'll determine the best solution for that in app rollout.

Known Improvements

These known improvements are intentionally deferred for either speed or flexibility.

Global

  • remove lint setup in favor of TypeScript rules
  • specify and extract any types
  • build icon arrays from SVG directory
  • rework DisplaySwitch to contain width concern and MediaSwitch to invert controller to owner
  • better solve for all my .toLowerCases()

Local

  • #refactor-all-icons-to-32px-base
  • #improve-outline-a11y https://hackernoon.com/removing-that-ugly-focus-ring-and-keeping-it-too-6c8727fefcd2
  • #add-accounts-support