WYSIWYG Quick Reference — Do's and Don'ts
CKEditor 5 + AZ Bootstrap v2.0.27 [3][4]
Print this page to PDF: File → Print → Save as PDF
✅ DO — What Works
Allowed HTML Tags
| Headings | h1 h2 h3 h4 h5 h6 |
| Text | p div blockquote pre hr |
| Inline | strong em s sup sub code span a |
| Lists | ul ol li dl dt dd |
| Tables | table thead tbody tr th td |
Allowed Attributes
class="" | On almost every element — your primary styling tool |
href="" | On links |
target="" | On links (e.g., _blank) |
id="" | On divs |
Available Colors
Text Colors (on span, p, div, td):
text-red · text-blue · text-sky · text-azurite · text-muted · text-success · text-warning · text-danger · text-info
Background Colors (on p, div, td):
Spacing Classes
Pattern: {m or p}{t/b/l/r/x/y}-{breakpoint}-{0-10}
| Size | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Pixels | 0 | ~4 | ~8 | ~16 | ~24 | ~48 | ~64 | ~80 | ~96 | ~112 | ~128 |
Examples: mt-3 pb-5 px-md-4 my-lg-5 [1]
Responsive Breakpoints
| Name | XS | SM | MD | LG | XL |
|---|---|---|---|---|---|
| Min Width | 0px | 576px | 768px | 992px | 1200px |
| Device | Phone | Large phone | Tablet | Desktop | Wide desktop |
| Class infix | (none) | -sm- | -md- | -lg- | -xl- |
Common Show/Hide Patterns
| Goal | Classes |
|---|---|
| Phone only | d-block d-sm-none |
| Tablet only | d-none d-md-block d-lg-none |
| Desktop only | d-none d-lg-block |
| Mobile only (<768px) | d-block d-md-none |
| Tablet+ (768px+) | d-none d-md-block |
Typography, Layout & Components
Typography:
font-weight-boldfont-weight-lightfont-italictext-uppercasetext-lowercasetext-capitalizeleaddisplay-4
Layout:
row+col-*d-flexflex-columnflex-md-rowflex-wrapjustify-content-centerjustify-content-betweenalign-items-center
Components:
alert alert-*badge badge-*card+card-bodybtn btn-redbtn btn-bluebtn btn-outline-redborderroundedrounded-pill
❌ DON'T — What Gets Stripped
Stripped Tags
section | Removed, content dumped into p |
article | Removed, content dumped into p |
u | Tag removed, text kept |
mark | Tag removed, text kept |
small | Tag removed, text kept |
style | Completely removed |
svg | Completely removed |
script | Completely removed |
Stripped Attributes
style="" | ALL inline styles on ALL elements |
data-*="" | Custom data attributes |
role="" | ARIA roles |
onmouseover="" etc. | All inline JavaScript events |
Auto-Converted Tags
b → strong | Semantic normalization [7] |
i → em | Semantic normalization [7] |
del → s | Normalized |
⚠️ NOT POSSIBLE — Don't Even Try
- Custom colors via inline CSS
- CSS animations or transitions
- CSS transforms (rotate, scale, skew)
- Gradients (linear or radial)
- Box shadows or text shadows
- CSS filters (blur, grayscale)
- Clip-path shapes
- Custom fonts via inline CSS
- SVG graphics
- Any JavaScript interactions
🔑 The Golden Rule
ALL styling must be done through Bootstrap CSS classes.
Inline style="" attributes are always stripped. Use class="" with Bootstrap utilities instead.
Use the Source button in the CKEditor toolbar to paste HTML code.
For color accessibility, use the text color test at AZ Bootstrap color documentation [1]
TEST 1a: Heading 1
TEST 1b: Heading 2
TEST 1c: Heading 3
TEST 1d: Heading 4
TEST 1e: Heading 5
TEST 1f: Heading 6
TEST 2a: Bold (strong)
TEST 2b: Bold (b tag)
TEST 2c: Italic (em)
TEST 2d: Italic (i tag)
TEST 2e: Strikethrough (s)
TEST 2f: Strikethrough (del)
TEST 2g: Underline
TEST 2h: Superscript
TEST 2i: Subscript
TEST 2j: Inline code
TEST 2k: Mark/highlight
TEST 2l: Small text
TEST 3b: Link with target blank
TEST 3c: Link styled as button
TEST 3d: Link styled as blue button
- TEST 4a: Unordered list item 1
- TEST 4a: Unordered list item 2
- TEST 4a: Unordered list item 3
- TEST 4b: Ordered list item 1
- TEST 4b: Ordered list item 2
- TEST 4b: Ordered list item 3
- TEST 4c: Nested list parent
- TEST 4c: Nested child 1
- TEST 4c: Nested child 2
TEST 5a: Center aligned text
TEST 5b: Right aligned text
TEST 5c: Justified text
TEST 5d: Left aligned text
TEST 6a: text-white (on dark bg so visible)
TEST 6b: text-red
TEST 6c: text-blue
TEST 6d: text-sky
TEST 6e: text-azurite
TEST 6f: text-muted
TEST 6g: text-success
TEST 6h: text-warning
TEST 6i: text-danger
TEST 6j: text-info
TEST 7a: margin-top 1
TEST 7b: margin-top 3
TEST 7c: margin-bottom 3
TEST 7d: padding-top 3
TEST 7e: padding-bottom 3
TEST 7f: padding left-right 3
TEST 7g: padding top-bottom 3
TEST 8a: Inline style color red
TEST 8b: Inline style font-size 24px
TEST 8c: Inline style background yellow
TEST 8d: Multiple inline styles
TEST 8e: Paragraph with border and padding
TEST 9d: Section tagTEST 9e: Article tag
| TEST 10: Header 1 | TEST 10: Header 2 |
|---|---|
| TEST 10: Cell 1 | TEST 10: Cell 2 |
| TEST 10: Cell 3 | TEST 10: Cell 4 |
| TEST 11: Styled Header 1 | TEST 11: Styled Header 2 |
|---|---|
| TEST 11: Styled Cell 1 | TEST 11: Styled Cell 2 |
TEST 12a: Blockquote text
TEST 12b: Preformatted text
TEST 12c: Code block
TEST 13: Text above hr
TEST 13: Text below hr
TEST 14: Definition Term
TEST 14: Definition Description
TEST 16a: Badge primary
TEST 16b: Badge secondary
TEST 16c: Badge success
TEST 16d: Badge danger
TEST 18: Card Title
TEST 18: Card body content
TEST 19a: Paragraph with data attribute
TEST 19c: Paragraph with role attribute
TEST 20a: display none (should be invisible)
TEST 20b: display block
TEST 20c: display inline
TEST 20d: span forced to block
TEST 21a: font-weight-bold class
TEST 21b: font-weight-light class
TEST 21c: font-italic class
TEST 21d: text-uppercase class
TEST 21e: TEXT-LOWERCASE CLASS
TEST 21f: text-capitalize class
TEST 22a: Lead paragraph (larger text)
TEST 22b: Display-4 heading style
TEST 23a: bg-red
TEST 23b: bg-blue
TEST 23c: bg-sky
TEST 23d: bg-azurite
TEST 23e: bg-light
TEST 23f: bg-dark
TEST 24a: border class
TEST 24b: border-red
TEST 24c: rounded border
TEST 24d: pill border
TEST 25: Responsive Breakpoint Tests (Full Width)
Resize your browser window. The colored bars below should appear/disappear at different widths AND span the full browser width.
Three methods are tested: Method A uses the viewport width calc trick, Method B uses your site's CSS variables, Method C uses container-fluid class.
Method A: Viewport Calc (100vw + negative margin)
Method B: Site CSS Variables (--full-width-left-distance)
Method C: Bootstrap container-fluid
TEST 26: Breakpoint Quick Reference
| Test | Color | Visible When | Classes Used |
|---|---|---|---|
| 25a | Dark Gray | Always | d-block |
| 25c | Red | XS only (<576px) | d-block d-sm-none |
| 25d | Orange | SM only (576-767px) | d-none d-sm-block d-md-none |
| 25e | Yellow | MD only (768-991px) | d-none d-md-block d-lg-none |
| 25f | Green | LG only (992-1199px) | d-none d-lg-block d-xl-none |
| 25g | Blue | XL only (1200px+) | d-none d-xl-block |
| 25h | Purple | MD and up (768px+) | d-none d-md-block |
| 25i | Teal | Below MD (<768px) | d-block d-md-none |
| 25j | Dark Blue-Gray | LG and up (992px+) | d-none d-lg-block |
TEST 27: Responsive Grid Test
TEST 28: Responsive Text Alignment
TEST 28a: Centered on mobile, left-aligned on md+
TEST 28b: Left on mobile, centered on lg+
TEST 28c: Center → Left at sm → Right at lg
TEST 29: Responsive Spacing
TEST 29a: Padding grows with screen size (p-2 → p-md-4 → p-lg-5)
TEST 29b: Margin-top grows with screen size (mt-2 → mt-md-4 → mt-lg-5)
TEST 30: Responsive Flex Direction
TEST 31: Which Full-Width Method Works?
| Method | Technique | Did It Span Full Width? |
|---|---|---|
| A | width:100vw; left:50%; margin-left:-50vw | (check visually) |
| B | margin-left: var(--full-width-left-distance) | (check visually) |
| C | class="container-fluid" | (check visually) |
Results Checklist
After saving, compare this checklist to what appears on the page:
- Tests 1a-1f: Which heading levels survived?
- Tests 2a-2l: Which inline formatting tags survived?
- Tests 3a-3e: Did link attributes and button classes survive?
- Tests 4a-4c: Did list nesting work?
- Tests 5a-5d: Did text alignment classes work?
- Tests 6a-6j: Which AZ Bootstrap text colors work?
- Tests 7a-7g: Did spacing utility classes survive?
- Tests 8a-8e: Did inline styles survive?
- Tests 9a-9e: Did div, section, article tags survive?
- Tests 10-11: Did tables render?
- Tests 12a-12c: Did blockquote, pre, code survive?
- Test 13: Did the horizontal rule render?
- Test 14: Did definition lists survive?
- Tests 15a-15d: Did alert boxes render with styling?
- Tests 16a-16d: Did badges render?
- Test 17: Did the two-column grid layout work?
- Test 18: Did the card component render?
- Tests 19a-19c: Did data, id, and role attributes survive?
- Tests 20a-20d: Did display utilities work?
- Tests 21a-21f: Did font utility classes work?
- Tests 22a-22b: Did lead and display text work?
- Tests 23a-23f: Did background color classes work?
- Tests 24a-24d: Did border classes work?
- Tests 25 (A/B/C): Which full-width method worked? Did colored bars span the entire browser?
- Test 26: Did the reference table render with colored cells?
- Test 27: Did the 4-column responsive grid reflow properly?
- Test 28a-28c: Did text alignment change at different breakpoints?
- Test 29a-29b: Did spacing change at different breakpoints?
- Test 30: Did flex items go from stacked to side-by-side at md?
- Test 31: Note which full-width method (A, B, or C) actually worked
ADV TEST 1: Text Shadow Effects
ADV 1a: Basic drop shadow text
ADV 1b: Red glow text (UA Brand Red)
ADV 1c: Hard offset shadow (Red text, Navy shadow)
ADV 1d: 3D stacked shadow text
ADV 1e: Outlined/stroked text (white with red outline)
ADV 1f: Neon blue glow effect
ADV TEST 2: Box Shadow Effects
ADV TEST 3: CSS Gradients
ADV 3f: Gradient text fill (may not work)
ADV TEST 4: CSS Transforms
ADV 4c: Scaled up text (1.1x)
ADV TEST 5: CSS Transitions (hover effects)
Hover over each element to test if transitions work.
ADV 5b: Hover button — scale + color change
ADV TEST 6: Style Tag Test
.adv-test-pulse { animation: adv-pulse 2s infinite; background-color: #AB0520; color: white; padding: 20px; text-align: center; margin-bottom: 15px; } @keyframes adv-pulse { 0% { box-shadow: 0 0 0 0 rgba(171,5,32,0.7); } 70% { box-shadow: 0 0 0 15px rgba(171,5,32,0); } 100% { box-shadow: 0 0 0 0 rgba(171,5,32,0); } } .adv-test-shimmer { background: linear-gradient(90deg, #0C234B 25%, #1a3a6b 50%, #0C234B 75%); background-size: 200% 100%; animation: adv-shimmer 2s linear infinite; color: white; padding: 20px; text-align: center; margin-bottom: 15px; } @keyframes adv-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .adv-test-fade-border { border: 3px solid #AB0520; padding: 20px; margin-bottom: 15px; animation: adv-border-fade 3s ease-in-out infinite alternate; } @keyframes adv-border-fade { 0% { border-color: #AB0520; } 50% { border-color: #0C234B; } 100% { border-color: #8B0015; } } .adv-hover-grow:hover { transform: scale(1.03); box-shadow: 0 8px 25px rgba(0,0,0,0.2); } .adv-hover-grow { transition: all 0.3s ease; padding: 20px; background: #f8f8f8; border: 1px solid #ddd; margin-bottom: 15px; cursor: pointer; }
ADV TEST 7: Advanced Border Styles
Circle
ADV TEST 8: Opacity and CSS Filters
ADV TEST 9: Advanced Flexbox
ADV TEST 10: CSS Grid Layout
ADV TEST 11: Advanced Typography
ADV 11a: Increased letter-spacing (2px) and line-height (1.8)
ADV 11b: Wide tracking uppercase
ADV 11c: Increased word-spacing (10px between these words)
ADV 11d: First-line text indent (40px). This paragraph should have its first line indented like a traditional book paragraph. The rest of the lines should wrap normally without any indentation applied.
ADV 11e: Small Caps Font Variant Text
ADV 11f: Vertical text (writing-mode)
ADV TEST 12: Positioning and Layering
ADV 12a: Base layer (position: relative)
ADV TEST 13: Clip-Path Shapes
ADV TEST 14: Styled Numbered Steps
ADV TEST 15: Decorative Dividers
ADV TEST 16: Inline SVG
ADV 16: SVG Box
ADV TEST 17: Interactive Cards (inline JS hover)
ADV 17a: Card One
Hover for lift effect with red border accent
ADV 17b: Card Two
Hover for lift effect with navy border accent
ADV 17c: Card Three
Hover for gradient fill effect
Advanced Test Results Checklist
After saving, check each test:
- ADV 1a-1f: Which text-shadow effects survived?
- ADV 2a-2f: Which box-shadow effects survived?
- ADV 3a-3f: Which gradient backgrounds rendered? Did gradient text (3f) work?
- ADV 4a-4d: Did CSS transforms (rotate, skew, scale, perspective) work?
- ADV 5a-5c: Did inline JS hover events fire? Did transitions animate smoothly?
- ADV 6a-6d: Did the <style> tag survive? (This is the BIG question — if yes, animations and class-based hovers work!)
- ADV 7a-7f: Which border styles rendered? Did the circle (7e) work?
- ADV 8a-8f: Did opacity scale work? Did CSS filters (blur, grayscale, drop-shadow) survive?
- ADV 9a-9c: Did flexbox layouts with gap and flex ratios work?
- ADV 10a-10b: Did CSS Grid layout work?
- ADV 11a-11f: Which advanced typography properties survived?
- ADV 12a-12b: Did absolute positioning and z-index layering work?
- ADV 13a-13b: Did clip-path shapes render?
- ADV 14: Did the numbered step circles render correctly?
- ADV 15: Which decorative divider styles survived?
- ADV 16: Did inline SVG render?
- ADV 17a-17c: Did the hover card interactions work?
Key Questions to Answer:
- Did the <style> tag survive? (Test 6) — If YES, we have full animation capability!
- Did inline JS events (onmouseover/onmouseout) survive? (Tests 5, 17) — If YES, we have interactive hover effects!
- Did inline SVG survive? (Test 16) — If YES, we can create custom graphics!
- Which CSS properties in inline styles survived? Especially: transform, filter, clip-path, opacity, transition, box-shadow, text-shadow, gradients
WYSIWYG Capability Reference
What our CKEditor 5 + AZ Bootstrap v2.0.27 setup allows
Section 1: Allowed HTML Tags
✅ Tags That Work
| Category | Tags | Notes |
|---|---|---|
| Headings | h1 h2 h3 h4 h5 h6 | All six levels work |
| Text Blocks | p div blockquote pre | All accept class attributes |
| Inline | strong em s sup sub code span a | span accepts classes |
| Lists | ul ol li | Nesting works |
| Definition Lists | dl dt dd | Content auto-wrapped in p tags |
| Tables | table thead tbody tr th td | Auto-adds class="table" |
| Other | hr | Horizontal rule |
❌ Tags That Get Stripped
| Tag | What Happens |
|---|---|
section | Removed, content dumped into p tag |
article | Removed, content dumped into p tag |
u (underline) | Tag stripped, text kept |
mark | Tag stripped, text kept |
small | Tag stripped, text kept |
style | Completely removed |
svg | Completely removed |
script | Completely removed |
🔄 Tags That Get Converted
| You Type | Becomes |
|---|---|
b | strong |
i | em |
del | s |
Section 2: Allowed vs Stripped Attributes
| Attribute | Status | Notes |
|---|---|---|
class="" | ✅ Works | On almost every element |
href="" | ✅ Works | On a tags |
target="" | ✅ Works | On a tags (e.g., _blank) |
id="" | ✅ Works | On div tags |
style="" | ❌ Stripped | ALL inline styles on ALL elements |
data-*="" | ❌ Stripped | Custom data attributes removed |
role="" | ❌ Stripped | ARIA role removed |
onmouseover="" | ❌ Stripped | All inline JS events removed |
Section 3: AZ Bootstrap Utility Classes
All styling must be done through classes — this is your primary styling tool
Text Colors
Works on: span, p, div, td
| text-red | text-blue | text-sky | text-azurite |
| text-muted | text-success | text-warning | text-danger |
| text-info | text-white |
Background Colors
Works on: p, div, td
Spacing Classes
Pattern: {property}{sides}-{breakpoint}-{size}
| Property | Code | Sides | Code |
|---|---|---|---|
| Margin | m | Top | t |
| Padding | p | Bottom | b |
| Left | l | ||
| Right | r | ||
| Left + Right | x | ||
| Top + Bottom | y | ||
| All sides | (none) |
Sizes: 0, 1, 2, 3, 4, 5 (and extended: 6, 7, 8, 9, 10, 20, 30) [1]
Examples:
mt-3— margin-top size 3 (1rem | ~16px)pb-5— padding-bottom size 5 (3rem | ~48px)px-md-4— padding left+right size 4, starting at md breakpointmy-lg-5— margin top+bottom size 5, starting at lg breakpoint
Section 4: Typography Classes
| Class | Example |
|---|---|
font-weight-bold | Bold text |
font-weight-light | Light text |
font-italic | Italic text |
text-uppercase | uppercase text |
text-lowercase | LOWERCASE TEXT |
text-capitalize | capitalize each word |
lead | Lead paragraph (larger) |
display-4 | Display heading (very large) |
Section 5: Text Alignment
Static Alignment
text-align-left — Left alignedtext-align-center — Center alignedtext-align-right — Right alignedtext-align-justify — Justified text fills the full width of the line by adjusting spacing between wordsResponsive Alignment
| Classes | Behavior |
|---|---|
text-center text-md-left | Centered on mobile, left-aligned on tablet+ |
text-left text-lg-center | Left on mobile, centered on desktop+ |
text-center text-sm-left text-lg-right | Center → Left at sm → Right at lg |
Section 6: Responsive Display Classes
Breakpoints
| Breakpoint | Min Width | Class Infix | Typical Device |
|---|---|---|---|
| XS | 0px | (none) | Small phones |
| SM | 576px | -sm- | Large phones |
| MD | 768px | -md- | Tablets |
| LG | 992px | -lg- | Small desktops |
| XL | 1200px | -xl- | Large desktops |
Show/Hide Patterns
| Goal | Classes |
|---|---|
| Always visible | d-block |
| Always hidden | d-none |
| Phone only (<576px) | d-block d-sm-none |
| Large phone only (576-767px) | d-none d-sm-block d-md-none |
| Tablet only (768-991px) | d-none d-md-block d-lg-none |
| Small desktop only (992-1199px) | d-none d-lg-block d-xl-none |
| Large desktop only (1200px+) | d-none d-xl-block |
| Mobile only (<768px) | d-block d-md-none |
| Tablet and up (768px+) | d-none d-md-block |
| Desktop only (992px+) | d-none d-lg-block |
Live Demo — Resize Browser to Test
Section 7: Grid Layout
Basic Columns
Responsive Columns
These columns reflow at different screen sizes:
Common Grid Patterns
| Pattern | Classes on Each Column |
|---|---|
| 2 equal columns | col-12 col-md-6 |
| 3 equal columns | col-12 col-md-4 |
| 4 equal columns | col-12 col-sm-6 col-lg-3 |
| Sidebar + Main | col-12 col-md-4 + col-12 col-md-8 |
| Full → Half → Third | col-12 col-sm-6 col-lg-4 |
Section 8: Flexbox Classes
| Class | What It Does |
|---|---|
d-flex | Enables flexbox on a container |
flex-column | Stack items vertically |
flex-row | Lay items horizontally |
flex-md-row | Horizontal at md+ (stacked below) |
flex-wrap | Allow items to wrap to next line |
justify-content-center | Center items horizontally |
justify-content-between | Space items evenly |
align-items-center | Center items vertically |
Section 9: Bootstrap Components
Alerts
alert alert-info for informational messagesalert alert-success for success messagesalert alert-warning for warningsalert alert-danger for critical alertsBadges
badge-primary badge-secondary badge-success badge-danger
Cards
Card Title
Use card with card-body, card-title, and card-text
Button-Styled Links
btn btn-red btn btn-blue btn btn-outline-red
Borders
border — Standard borderborder border-red — Red borderborder rounded — Rounded cornersborder rounded-pill — Pill shapeSection 10: Spacing Size Reference
| Size | REM | Pixels (approx) | Example Class |
|---|---|---|---|
| 0 | 0 | 0px | mt-0 |
| 1 | 0.25rem | ~4px | mt-1 |
| 2 | 0.5rem | ~8px | mt-2 |
| 3 | 1.0rem | ~16px | mt-3 |
| 4 | 1.5rem | ~24px | mt-4 |
| 5 | 3.0rem | ~48px | mt-5 |
| 6 | 4.0rem | ~64px | mt-6 |
| 7 | 5.0rem | ~80px | mt-7 |
| 8 | 6.0rem | ~96px | mt-8 |
| 9 | 7.0rem | ~112px | mt-9 |
| 10 | 8.0rem | ~128px | mt-10 |
| 20 | 16.0rem | ~256px | mt-20 |
| 30 | 24.0rem | ~384px | mt-30 |
Responsive example: p-2 p-md-4 p-lg-5 — padding grows at each breakpoint [6]
Section 11: Quick Rules for Editors
✅ DO
- Use Bootstrap classes for ALL styling
- Use responsive display classes to show/hide content at different screen sizes
- Use row + col-* for column layouts
- Use bg-* and text-* classes for colors
- Use spacing classes (mt-*, mb-*, p-*) for spacing
- Use btn btn-red etc. on links for button styling
- Use the Source button in the toolbar to paste HTML
- Check color contrast per accessibility guidelines [1]
❌ DON'T
- Don't use style="" attributes — they will ALL be stripped
- Don't use inline JavaScript (onmouseover, onclick) — stripped
- Don't use style tags — stripped
- Don't use SVG — stripped
- Don't use
sectionorarticletags — stripped - Don't use
u,mark, orsmalltags — stripped - Don't rely on
data-*orroleattributes — stripped - Don't try CSS animations, transforms, gradients, or shadows — not possible without inline styles
Section 12: Common Recipes
Recipe 1: Colored Callout Box
Important Information
This is a callout using bg-azurite text-white p-4 mb-3 rounded on a div
Recipe 2: Two-Column Layout (Stacked on Mobile)
Left Column
Uses col-12 col-md-6 — full width on mobile, half on tablet+
Right Column
Same classes — sits beside the left column on tablet+
Recipe 3: Different Content for Mobile vs Desktop
Recipe 4: Responsive Button Row
Recipe 5: Highlighted Table Row
| Normal row | Normal content |
| Highlighted row | Uses bg-warning on the tr tag |
| Normal row | Normal content |