BBCode Formatting Guide
▸▸ Last updated: April 24, 20261. Introduction
PikiDiary supports BBCode (Bulletin Board Code) for formatting your profile bio. BBCode uses square brackets [ ] to wrap formatting tags, similar to HTML but simpler and more intuitive.
Bios on PikiDiary will always be 149px in width, so keep that in mind when creating your assets.
This guide covers all available BBCode tags and their usage.
2. Text Formatting
Bold
Make text bold using [b] tags:
Italic
Make text italic using [i] tags:
Underline
Underline text using [u] tags:
Strikethrough
Strike through text using [s] tags:
Small Text
Make text smaller using [small] tags:
Line Break
Insert a line break using [br]:
Comments
Add comments (invisible in output) using /* */:
3. Images & Media
Images
Embed images using [img] tags:
Make sure to use direct image URLs (ending in .png, .jpg, .gif, .webp, etc.).
Audio
Embed audio players using [music] tags:
You can add the loop option:
Custom Cursor
Change the cursor style using [cursor] tags. Accepts CSS cursor names or image URLs:
Supported CSS cursor values: auto, default, pointer, text, move, grab, grabbing, wait, help, not-allowed, crosshair, cell, copy, alias, progress, zoom-in, zoom-out, context-menu, no-drop.
4. Layout & Styling
PikiDiary supports advanced layout controls using [container] or [layout] tags (they are interchangeable). These allow you to apply CSS styles for custom layouts.
Basic Container
Styled Container
Apply CSS styles using comma-separated property: value pairs:
Flexbox Layout
For readability, I'm using [layout] for the parent flex container and [container] for children:
[container=flex: 1, background-color: #ffcccc, padding: 8px]Item 1[/container]
[container=flex: 1, background-color: #ccffcc, padding: 8px]Item 2[/container]
[container=flex: 1, background-color: #ccccff, padding: 8px]Item 3[/container]
[/layout]
Grid Layout
For readability, I'm using [layout] for the parent grid container and [container] for children:
[container=background-color: #ffd700, padding: 8px]A[/container]
[container=background-color: #ffd700, padding: 8px]B[/container]
[container=background-color: #ffd700, padding: 8px]C[/container]
[container=background-color: #ffd700, padding: 8px]D[/container]
[/layout]
Marquee
Create scrolling text with [marquee]:
Links
Create hyperlinks using [url] tags:
All links open in a new tab for security.
5. Advanced Features
Supported CSS Properties
When using [container] or [layout], the following CSS properties are supported:
- Layout:
display,flex,flex-direction,flex-wrap,flex-grow,flex-shrink,flex-basis,grid-template-columns,grid-template-rows,grid-template-areas,grid-auto-flow,grid-auto-columns,grid-auto-rows,grid-column,grid-row,grid-area,gap,row-gap,column-gap - Positioning:
position,top,right,bottom,left,inset,z-index - Sizing:
width,height,min-width,min-height,max-width,max-height,margin,padding - Appearance:
color,background-color,opacity,border,border-radius,box-shadow,text-align,font-size,font-weight,line-height,text-decoration,text-decoration-color,text-decoration-line - Other:
overflow,overflow-x,overflow-y
Display Presets
You can use shorthand display values without the display: prefix:
Supported presets: flex, grid, table, inline-grid, inline-flex, inline-table, block, inline, contents, flow-root.
Nesting
BBCode tags can be nested for complex layouts. Use [layout] for parent containers and [container] for children:
[layout=flex: 1, display: flex, flex-direction: column, gap: 5px]
[container=background-color: #ff9999, padding: 5px]Header[/container]
[container=flex: 1, background-color: #f0f0f0, padding: 5px]Content area[/container]
[/layout]
[container=flex: 1, background-color: #99ff99, padding: 5px]Sidebar[/container]
[/layout]
Security Notes
- All CSS values are validated against a whitelist to prevent XSS attacks
url()functions in CSS are blocked except for cursor imagesexpression(),javascript:,vbscript:, anddata:URIs are blocked- Only safe color formats are allowed (hex, rgb, rgba, hsl, hsla, named colors)
- Opacity must be between 0 and 1
Tips & Best Practices
- Use
gapinstead of margins for spacing between flex/grid items - Set
max-width: 100%on images to make them responsive - Use
overflow: hiddento clip content that overflows its container - Combine
display: flexwithjustify-contentandalign-itemsfor alignment - Use
background-colorwithcolorto create colored text blocks
