-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Puts Debuggerer
Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
With that, there are a few different approaches for adding a command menu to your website: you can use an open source library (like kmenu, cmdk, or kbar), use a proprietary tool such as CommandBar, or build your own. This tutorial focuses on building your own implementation, however you may not need to depending on whether or not you're satisfied with the other options available.
This is also the time to import in any fonts. For my project, I'm going to use Albert Sans, the brand new font on Google Fonts!
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
Since we'll be using Tailwind CSS, I suggest you start by installing and configuring that. Skip over this if your project already uses Tailwind.
Companies such as Vercel, GitHub, Sentry, Linear, Railway, Raycast and MANY other web applications ended up adding a command menu to their websites as well. Even desktop applications such as Discord, Figma or Slack feature a command menu to help users navigate their complex interfaces with ease.
Hey everyone! Over the past few months, I've been building my very own command menu component for React called kmenu! In this post, I want to go over how you can also create your OWN command menu.
First, we'll create a commands.tsx file at components/Menu, which will store all of our commands. I'm using react-icons, which essentially just bundles together all popular icon packs for easy use.
Companies such as Vercel, GitHub, Sentry, Linear, Railway, Raycast and MANY other web applications ended up adding a command menu to their websites as well. Even desktop applications such as Discord, Figma or Slack feature a command menu to help users navigate their complex interfaces with ease.
With that, there are a few different approaches for adding a command menu to your website: you can use an open source library (like kmenu, cmdk, or kbar), use a proprietary tool such as CommandBar, or build your own. This tutorial focuses on building your own implementation, however you may not need to depending on whether or not you're satisfied with the other options available.
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
Companies such as Vercel, GitHub, Sentry, Linear, Railway, Raycast and MANY other web applications ended up adding a command menu to their websites as well. Even desktop applications such as Discord, Figma or Slack feature a command menu to help users navigate their complex interfaces with ease.
// ... import { SiFramer, SiTailwindcss, SiApple, SiVercel, SiTwitter, SiTesla, SiArchlinux, SiDeno, SiFlutter, SiGithub, SiNike, SiDiscord, } from 'react-icons/si' export const commands: Command[] = [ { icon: , text: 'Framer Motion', perform: () => window.open('https://framer.com/motion', '_blank'), }, { icon: , text: 'TailwindCSS', perform: () => window.open('https://tailwindcss.com', '_blank'), }, { icon: , text: 'Apple', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Arch Linux', perform: () => window.open('https://apple.com', '_blank'), }, { icon: , text: 'Vercel', perform: () => window.open('https://vercel.com', '_blank'), }, { icon: , text: 'Tesla', perform: () => window.open('https://tesla.com', '_blank'), }, { icon: , text: 'Deno', perform: () => window.open('https://deno.land', '_blank'), }, { icon: , text: 'Discord', perform: () => window.open('https://discord.com', '_blank'), }, { icon: , text: 'Flutter', perform: () => window.open('https://flutter.dev/', '_blank'), }, { icon: , text: 'GitHub', perform: () => window.open('https://github.com/', '_blank'), }, { icon: , text: 'Nike', perform: () => window.open('https://nike.com/', '_blank'), }, { icon: , text: 'Twitter', perform: () => window.open('https://twitter.com', '_blank'), }, ]
With that, there are a few different approaches for adding a command menu to your website: you can use an open source library (like kmenu, cmdk, or kbar), use a proprietary tool such as CommandBar, or build your own. This tutorial focuses on building your own implementation, however you may not need to depending on whether or not you're satisfied with the other options available.
Related posts
-
I will create a command bar for your SaaS app / dashboard
-
Why is "cmd/ctrl+k" the hotkey to search on many websites like tailwindcss, github, and vuejs docs?
-
Does send email to customers really work on a SaaS business? If not, whatβs the best way to ask for feedbacks?
-
Theming using CSS Variables? Turn Them into VS Code Snippets for Faster, Error-Free Coding
-
Episode 24/13: Native Signals, Details on Angular/Wiz, Alan Agius on the Angular CLI