--- id: slds.guidance.utilities.visibility title: Visibility Utilities description: SLDS show/hide and responsive display utility classes summary: "Utilities for controlling element visibility including basic show/hide, responsive breakpoints, screen reader support, and collapsed/expanded states." artifact_type: reference domain: utilities topic: visibility content_format: structured complexity: intermediate audience: [implementer] tasks: [implement] refs: - slds.guidance.utilities - slds.guidance.overview.utilities tags: [utilities, visibility, responsive, accessibility] keywords: [slds-show, slds-hide, slds-assistive-text, responsive visibility, screen reader] --- # Visibility - Show/Hide Elements Controlling element visibility and responsive display. ## Basic Visibility | Class | Effect | |-------|--------| | `slds-show` | Display block | | `slds-hide` | Display none (!important, hidden from screen readers) | | `slds-hidden` | Visibility hidden (!important, maintains space) | | `slds-visible` | Visibility visible | | `slds-is-visually-empty` | Removes element from layout flow | **Display Variants**: - `slds-show_inline` - Display inline - `slds-show_inline-block` - Display inline-block ## Screen Reader Support | Class | Purpose | |-------|---------| | `slds-assistive-text` | Visually hidden but readable by screen readers | | `slds-assistive-text_focus` | Becomes visible when focused (for skip links) | ```html Skip to main content ``` ## Collapsed/Expanded States | Class | Effect | |-------|--------| | `slds-is-collapsed` | Height: 0, overflow: hidden | | `slds-is-expanded` | Height: auto, overflow: visible | ```html
Collapsible content here
``` ## Transition Visibility | Class | Effect | |-------|--------| | `slds-transition-hide` | Opacity: 0 | | `slds-transition-show` | Opacity: 1 | Add CSS transitions for smooth animations: ```css .slds-transition-hide, .slds-transition-show { transition: opacity 0.3s ease; } ``` ## Responsive Visibility **Breakpoints**: - `x-small`: 320px - `small`: 480px - `medium`: 768px - `large`: 1024px - `x-large`: 1280px ### Show Classes (Hidden Below, Visible At/Above) | Class | Visible From | |-------|--------------| | `slds-x-small-show` | 320px+ | | `slds-small-show` | 480px+ | | `slds-medium-show` | 768px+ | | `slds-large-show` | 1024px+ | **Display Variants**: - `slds-x-small-show_inline-block` - `slds-x-small-show_inline` - `slds-small-show_inline-block` - `slds-small-show_inline` - `slds-medium-show_inline-block` - `slds-medium-show_inline` - `slds-large-show_inline-block` - `slds-large-show_inline` ### Show Only Classes (Visible Only Within Range) | Class | Visible Range | |-------|---------------| | `slds-x-small-show-only` | 320px - 479px | | `slds-small-show-only` | 480px - 767px | | `slds-medium-show-only` | 768px - 1023px | **Display Variants**: - `slds-x-small-show-only_inline-block` - `slds-x-small-show-only_inline` - `slds-small-show-only_inline-block` - `slds-small-show-only_inline` - `slds-medium-show-only_inline-block` - `slds-medium-show-only_inline` ### Hide Classes | Class | Hidden At/Above | Visible Below | |-------|-----------------|---------------| | `slds-hide_x-small` | 320px+ | < 320px | | `slds-hide_small` | 480px+ | < 480px | | `slds-hide_medium` | 768px+ | < 768px | | `slds-hide_large` | 1024px+ | < 1024px | | `slds-hide_x-large` | 1280px+ | < 1280px | ### Max Hide Classes (Hidden Below Breakpoint) | Class | Hidden Below | |-------|--------------| | `slds-max-x-small-hide` | < 480px | | `slds-max-small-hide` | < 768px | | `slds-max-medium-hide` | < 1024px | ### Inverse Show Classes (Hidden At/Above) | Class | Visible Below | Hidden At/Above | |-------|---------------|-----------------| | `slds-show_x-small` | < 320px | 320px+ | | `slds-show_small` | < 480px | 480px+ | | `slds-show_medium` | < 768px | 768px+ | | `slds-show_large` | < 1024px | 1024px+ | | `slds-show_x-large` | < 1280px | 1280px+ | ## Common Patterns ```html
...
...
Extended information for larger screens

Section content
``` ## Best Practices ✅ Use `slds-assistive-text` for all icon-only buttons ✅ Use `slds-hide` with `!important` to ensure hiding ✅ Test responsive classes at each breakpoint ✅ Pair `aria-expanded` with `slds-is-collapsed/expanded` ✅ Use `slds-assistive-text_focus` for skip links ✅ Apply mobile-first approach: hide by default, show at breakpoints ❌ Combine `slds-hide` and `slds-show` on the same element ❌ Use `slds-hidden` and `slds-visible` together ❌ Hide essential content from screen readers ❌ Use visibility classes for layout (use Grid or Flexbox instead) ❌ Rely only on `display: none` for animations (use transitions)