Table of Contents
Combining Suggestion Types
Expanding Beyond Basic Search
Home Web Front-end CSS Tutorial So, You Want to Build an @mention Autocomplete Feature?

So, You Want to Build an @mention Autocomplete Feature?

Mar 18, 2025 pm 12:08 PM

So, You Want to Build an @mention Autocomplete Feature?

Autocomplete is a familiar feature: type into a search box, and suggestions appear. While common in e-commerce, its use as a typing enhancement is often overlooked.

Modern web apps are moving beyond simple text areas. Social and productivity platforms like Twitter, Slack, and Notion utilize the “@mention” pattern, allowing users to reference others using triggers like "@" or "#". This enhances the typing experience by providing a suggestion panel, allowing quick referencing without leaving the keyboard.

This pattern boosts consistency in user-generated content. Hashtags, for instance, create semi-structured data within free-form text, aiding content categorization. Mentions create connection graphs across app resources, simplifying content recommendations and user behavior analysis.

See live demo See how we built it ### Crafting Effective @mentions

A successful @mention autocomplete should be seamless. It acts as a helpful assistant, learning as you type, but knowing when to step aside. Users can ignore suggestions or easily use them to complete their input.

Twitter's implementation closes the panel when the typed word is no longer a valid token (e.g., after a space, as handles don't contain spaces). Slack's approach is more flexible, allowing spaces for full-name searches, using different heuristics to detect user intent.

Upon selection, Twitter closes the panel, inserts the mention, and adds a space for continued typing. This seemingly small detail contributes to a fluid user experience.

Mentions, once added, become interactive. On Twitter, clicking or using arrow keys to select a mention reopens the panel, allowing editing and ensuring correct notification upon sending.

The open-source Autocomplete library simplifies this process. While ideally suited for Algolia, it works with any data source and facilitates building multi-source, accessible autocomplete features.

Combining Suggestion Types

Using distinct symbols (e.g., "@" for people, "#" for hashtags) works well with few, clearly defined types. However, with more numerous or less distinct types, users may struggle to remember all the symbols.

Federated search (multi-source) allows for assigning multiple types per symbol, improving discoverability without overwhelming users with numerous patterns.

Slack mixes suggestions, differentiating them visually (icons, badges). Notion groups suggestions by type (dates, people, links), promoting consistency and user muscle memory. This grouping can be achieved through multi-source queries or tools like Autocomplete's Reshape API.

Notion also utilizes dynamic placeholders, predictive suggestions that update as the user browses, clarifying the action associated with each suggestion. They cleverly use CSS Custom Properties and JavaScript to achieve this.

Managing the number of results from multiple sources can be challenging. A fixed-height panel with a scrollbar or using combining/limiting mechanisms (like Autocomplete's Reshape API) can address this.

The @mention pattern's versatility extends beyond its typical implementation. Slack's emoji search (using ":") and Notion's action insertion ("/") use similar mechanisms: a special character opens a suggestion panel, allowing selection and application.

Notion's approach highlights the pattern's adaptability through custom item templates and styling. This creates a familiar and fluid experience across various apps.

See demo ### Beyond Type Completion

While mentions enhance typing, composition boxes can function as conversational interfaces. Notion's "/" shortcut triggers action insertion, creating new blocks of a specific type.

This "slash command" pattern, popularized in gaming, is now standard in apps like Slack and Discord. It centralizes common tasks, reducing friction and cognitive load. For example, a "/zoom" command simplifies initiating and sharing Zoom meetings.

Previously limited to power users, slash commands are becoming more prevalent and user-friendly. Augmenting the typing experience isn't about adding complex features, but about providing the right information at the right time, reducing cognitive load and improving user experience.

See demo

The above is the detailed content of So, You Want to Build an @mention Autocomplete Feature?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Making Your First Custom Svelte Transition Making Your First Custom Svelte Transition Mar 15, 2025 am 11:08 AM

The Svelte transition API provides a way to animate components when they enter or leave the document, including custom Svelte transitions.

Working With GraphQL Caching Working With GraphQL Caching Mar 19, 2025 am 09:36 AM

If you’ve recently started working with GraphQL, or reviewed its pros and cons, you’ve no doubt heard things like “GraphQL doesn’t support caching” or

Show, Don't Tell Show, Don't Tell Mar 16, 2025 am 11:49 AM

How much time do you spend designing the content presentation for your websites? When you write a new blog post or create a new page, are you thinking about

Building an Ethereum app using Redwood.js and Fauna Building an Ethereum app using Redwood.js and Fauna Mar 28, 2025 am 09:18 AM

With the recent climb of Bitcoin’s price over 20k $USD, and to it recently breaking 30k, I thought it’s worth taking a deep dive back into creating Ethereum

Creating Your Own Bragdoc With Eleventy Creating Your Own Bragdoc With Eleventy Mar 18, 2025 am 11:23 AM

No matter what stage you’re at as a developer, the tasks we complete—whether big or small—make a huge impact in our personal and professional growth.

A bit on ci/cd A bit on ci/cd Apr 02, 2025 pm 06:21 PM

I'd say "website" fits better than "mobile app" but I like this framing from Max Lynch:

What the Heck Are npm Commands? What the Heck Are npm Commands? Mar 15, 2025 am 11:36 AM

npm commands run various tasks for you, either as a one-off or a continuously running process for things like starting a server or compiling code.

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

It's out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

See all articles