Create advanced message layouts with NoveCord's layout system. Build containers, sections, media galleries, and more for rich Discord message experiences.
The main container for organizing message content with accent colors and spoiler support.
const { ContainerBuilder, TextDisplayBuilder } = require('novecord');const textDisplay = new TextDisplayBuilder() .setContent('Hello, this is a container message!') .build();const container = new ContainerBuilder() .setAccentColor('#5865F2') .setSpoiler(false) .addComponent(textDisplay) .build();client.sendMessage(channelId, { content: 'Check out this container:', components: [container]});
.setAccentColor(hex)
- Set container accent color (hex format).setSpoiler(state)
- Enable/disable spoiler mode.addComponent(component)
- Add a component to the container.build()
- Build the final container objectCreate organized sections within containers with optional accessory components.
const { SectionBuilder, TextDisplayBuilder, ThumbnailBuilder } = require('novecord');const thumbnail = new ThumbnailBuilder() .setMedia('https://example.com/image.png') .build();const textDisplay = new TextDisplayBuilder() .setContent('This section has a thumbnail accessory!') .build();const section = new SectionBuilder() .setAccessory(thumbnail) .addComponent(textDisplay) .build();
.setAccessory(component)
- Set an accessory component (like thumbnail).addComponent(component)
- Add a component to the section.build()
- Build the final section objectDisplay text content within layouts and sections.
const { TextDisplayBuilder } = require('novecord');const textDisplay = new TextDisplayBuilder() .setContent('**Bold text** and *italic text* with markdown support!') .build();
.setContent(text)
- Set the text content (supports markdown).build()
- Build the final text display objectAdd thumbnail images as accessories or standalone components.
const { ThumbnailBuilder } = require('novecord');const thumbnail = new ThumbnailBuilder() .setMedia('https://cdn.discordapp.com/avatars/123456789/avatar.png') .build();
.setMedia(url)
- Set the thumbnail image URL.build()
- Build the final thumbnail objectCreate galleries with multiple images or media items.
const { MediaGalleryBuilder } = require('novecord');const gallery = new MediaGalleryBuilder() .addItem('https://example.com/image1.png') .addItem('https://example.com/image2.jpg') .addItem('https://example.com/image3.gif') .build();
.addItem(url)
- Add a media item to the gallery.build()
- Build the final media gallery objectAttach files to your message layouts.
const { FileBuilder } = require('novecord');const fileAttachment = new FileBuilder() .setFile({ name: 'document.pdf', data: fileBuffer, description: 'Important document' }) .build();
.setFile(file)
- Set the file object with name, data, and description.build()
- Build the final file objectAdd visual separators between content sections.
const { SeparatorBuilder } = require('novecord');const separator = new SeparatorBuilder() .setSpacing('large') .setDivider(true) .build();
Spacing | Description |
---|---|
small | Minimal spacing |
medium | Default spacing |
large | Maximum spacing |
.setSpacing(size)
- Set spacing size (small, medium, large).setDivider(state)
- Enable/disable visual divider line.build()
- Build the final separator objectHere's a comprehensive example using multiple layout builders together.
const { ContainerBuilder, SectionBuilder, TextDisplayBuilder, ThumbnailBuilder, MediaGalleryBuilder, SeparatorBuilder } = require('novecord');// Create thumbnail for header sectionconst headerThumbnail = new ThumbnailBuilder() .setMedia('https://example.com/logo.png') .build();// Create header sectionconst headerSection = new SectionBuilder() .setAccessory(headerThumbnail) .addComponent( new TextDisplayBuilder() .setContent('**Welcome to our server!**\nHere are some important updates.') .build() ) .build();// Create separatorconst separator = new SeparatorBuilder() .setSpacing('medium') .setDivider(true) .build();// Create media galleryconst gallery = new MediaGalleryBuilder() .addItem('https://example.com/update1.png') .addItem('https://example.com/update2.png') .addItem('https://example.com/update3.png') .build();// Create content sectionconst contentSection = new SectionBuilder() .addComponent( new TextDisplayBuilder() .setContent('Check out these screenshots from our latest update!') .build() ) .addComponent(gallery) .build();// Build the complete containerconst container = new ContainerBuilder() .setAccentColor('#00D4AA') .addComponent(headerSection) .addComponent(separator) .addComponent(contentSection) .build();// Send the messageclient.sendMessage(channelId, { content: 'Server Update:', components: [container]});