Components

These are usage guidelines for common components used across Nextcloud. For a full list of components go to the Nextcloud Vue component library.

Buttons

Buttons (NcButton) are used to initiate actions in your app. This may be a primary action, or it may be used to confirm an action in a dialog, or simply be used for any major action in your app.

Primary, secondary and tertiary buttons used in the Talk dashboard

List item

List items (NcListItem) are the rows of a content list such as conversations in Talk, messages in Mail, and boards in Deck.

List items used for conversations in Talk

Counter bubbles

Counter bubbles (NcCounterBubble) are small badges that show a number count next to an item, often in the navigation. A counter bubble is not interactive.

Unread counter in Mail

Avatars

Avatars (NcAvatar) represent a user, group, or contact. They show the user's profile picture when available, the user's initials otherwise, and a generic icon for non-users like external email addresses or integrations. An avatar should almost always sit next to a display name.

List of avatars in a Talk conversation

Chips

Chips (NcChip) are small, compact labels for short pieces of metadata like tags, categories, selected values inside an input, or filter options above a list. Do not use chips for triggering major actions, use a button instead.

Tag in Mail

User bubbles

User bubbles (NcUserBubble) represent a user inside flowing content like chat messages, comments, and text documents.

User bubbles when you at-mention in Talk

Note card

Note cards (NcNoteCard) are persistent inline message boxes that can be used to provide additional information about an element, communicate state, warn the user, or surface a problem. They come in four types: info, success, warning, and error.

Warning note card in Talk

Input fields

Input fields allow the user to enter text, numbers, passwords, and more. Input fields often have labels, helper text, and errors.

Text fields and text area while creating a Talk conversation

Formattable text area

Use the rich text content (NcRichContenteditable) when the user may want to enter text with formatting via markdown syntax. This can be used for messages, comments, and long descriptions. To display the results of the text entered in this text area, use the NcRichText component which renders the formatted text.

Message input in Talk

Pickers

Pickers are specialized inputs that open a popover or modal to choose a structured value like a date, a timezone, a color, an emoji, or a file.

Datetime picker

The datetime picker can be used to enter a date and time for scheduling events, setting reminders, and selecting dates of birth.

  • Use the native picker (NcDateTimePickerNative) as a default. It uses the browser's native date and time controls and is more accessible than a custom one.

  • Use the custom picker (NcDateTimePicker) when the user benefits from seeing a calendar persistently, like for selecting a slot while booking an appointment.

  • Do use a sensible default date and time, for example, a user setting their work hours may benefit from a default of 9:00 AM as their starting availability and 5:00 PM as ending availability.

Date time picker for setting an event time

Timezone picker

The timezone picker (NcTimezonePicker) is a specialized dropdown preloaded with all named timezones.

  • Do use it only when a timezone is needed. Often the user's default home timezone may be sufficient for the action.

Timezone picker in Calendar

Color picker

The color picker (NcColorPicker) opens a small popover with a preset color palette. It can be used for setting colors for various items like Deck boards, calendars, and tags. The color picker should color a specific item, not large areas of the UI.

  • Use the default Nextcloud palette so colors stay consistent across different Nextcloud apps.

  • Enable the advanced fields (hex, RGB) only when fine control matters, for example, for personal theming.

Color picker for selecting an event color in Calendar

Emoji picker

The emoji picker (NcEmojiPicker) opens a popover for choosing an emoji, with search, skin-tone selection, and a recently-used row.

  • Do use it for user-generated content like reactions in Talk, conversation icons, and user-created pages in Collectives.

  • Do not use it as a generic icon picker for navigation entries or system items. Those use Material Symbols.

Emoji picker in Talk

File picker

The file picker (NcFilePicker) opens a modal of the user's files on Nextcloud. It supports filtering by file type, picking one or several items, and choosing folders.

  • Use the file picker when the user can attach a file from their Nextcloud. Also let the user upload a file from their local filesystem.

  • The file picker can also be useful for moving or copying files.

  • Do filter by file type when only certain formats are valid.

  • Do label the primary button with a verb that matches the action like "Attach", "Insert", or "Choose".

File picker for copying a file

Checkboxes and toggles

Checkboxes and toggles (NcCheckboxRadioSwitch) are selection controls that share a single component.

Checkboxes in Files sharing Toggles while creating a Talk conversation

Radio groups

Radio buttons allow users to select exactly one option from a defined radio group (NcRadioGroup). It also has a button variant which displays the options as buttons. When there are many options, use a dropdown instead.

Radio group Mail settings

Action menus

Action menus (NcActions) are command menus attached to a trigger button. The trigger opens a popover with a list of actions like "Rename", "Move", "Share", or "Delete".

Action menu in Talk

Empty content

Empty content (NcEmptyContent) is a message used when a view has no items to show. It has an icon, a heading, a short description, and an optional button.

Empty content in Collectives

Modals

Modals are overlays that demand the user's focused attention. In the component library there are two components: a dialog (NcDialog) used for confirmations and short forms, and a modal (NcModal) for custom content like viewers and slideshows. These components are used when there is a specific task or information that the user needs to focus on.

Modal containing settings for a calendar

Settings

The settings dialog (NcAppSettingsDialog) holds an app's per-user preferences and opens from the cog at the bottom of the app navigation.

Settings in Talk