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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@samfurlong/directus-panel-link

v1.0.0

Published

Display a clickable link in a Directus panel

Readme

Panel Link Extension for Directus

A customizable link panel extension for Directus that displays clickable links with full styling control.

Features

  • Clickable Links: Display functional links that users can click
  • Custom Display Text: Show custom text instead of the raw URL
  • Color Customization: Choose any color for your links
  • Font Size Control: Select from Small, Medium, Large, or Extra Large
  • New Tab Option: Configure links to open in new tabs (default: enabled)
  • Compact Design: Minimal height with clean styling
  • Responsive: Works across different screen sizes

Installation

  1. Clone or download this extension
  2. Navigate to the extension directory:
    cd extensions/panel-link
  3. Install dependencies:
    npm install
  4. Build the extension:
    npm run build
  5. The extension will be available in your Directus dashboard

Configuration Options

URL

  • Type: Text input
  • Required: Yes
  • Description: The destination URL for the link
  • Example: https://example.com

Display Text

  • Type: Text input
  • Required: No
  • Description: Custom text to display instead of the URL
  • Example: Click here to visit our website
  • Fallback: If empty, the URL will be displayed

Link Color

  • Type: Color picker
  • Required: No
  • Default: Directus primary color
  • Description: Choose any color for the link text

Font Size

  • Type: Dropdown
  • Required: No
  • Default: Medium
  • Options:
    • Small (0.875rem)
    • Medium (1rem)
    • Large (1.125rem)
    • Extra Large (1.25rem)

Open in New Tab

  • Type: Boolean toggle
  • Required: No
  • Default: Enabled
  • Description: When enabled, links open in a new browser tab

Usage

  1. In your Directus dashboard, navigate to the collection where you want to add the link panel
  2. Add a new panel and select "Link" from the panel options
  3. Configure the panel settings:
    • Enter the URL
    • Optionally add custom display text
    • Choose a color and font size
    • Toggle the "Open in New Tab" option
  4. Save the panel configuration

Development

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Directus instance

Development Commands

# Install dependencies
npm install

# Build the extension
npm run build

# Development mode with watch
npm run dev

# Link to Directus instance
npm run link

# Validate the extension
npm run validate

Project Structure

panel-link/
├── src/
│   ├── index.ts          # Panel configuration
│   ├── panel.vue         # Vue component
│   └── shims.d.ts        # TypeScript declarations
├── dist/                 # Built extension (generated)
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

Styling

The extension uses Directus design system variables for consistent styling:

  • Primary Color: var(--primary)
  • Subdued Text: var(--foreground-subdued)
  • Hover Effects: Opacity transitions for smooth interactions

Browser Compatibility

  • Modern browsers with ES6+ support
  • Includes proper rel="noopener noreferrer" for security when opening in new tabs

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This extension is licensed under the MIT License.

Support

For issues or questions:

  1. Check the Directus documentation
  2. Review existing issues
  3. Create a new issue with detailed information

Version History

  • 1.0.0: Initial release with basic link functionality
  • 1.1.0: Added color customization and font size options
  • 1.2.0: Added new tab option and compact design