Package org.patternfly.style


package org.patternfly.style
Styling utilities including CSS classes, modifiers, breakpoints, and CSS variables.

This package provides programmatic access to PatternFly's CSS styling system. It includes utilities for applying modifier classes, working with responsive breakpoints, managing CSS variables, and using typed modifier interfaces for component styling.

Key Classes

  • Breakpoint - Responsive breakpoint definitions (sm, md, lg, xl, 2xl)
  • BreakpointCollector - Stream collector for building breakpoint maps
  • Breakpoints - Container for breakpoint-specific values
  • Classes - Constants for PatternFly CSS class names
  • Color - PatternFly color enumeration
  • Modifiers - Reusable modifier interfaces for common styling flags
  • Size - Size enumeration (default, sm, md, lg, xl, 2xl, 3xl, 4xl)
  • TypedModifier - Interface for type-safe modifier application
  • Variable - Type-safe CSS variable definitions
  • VariableAssignments - Utilities for applying CSS variable assignments to elements
  • Variables - CSS variable assignments for components

CSS Classes

The Classes class provides constants for PatternFly CSS classes:

 import static org.patternfly.style.Classes.*;

 // Base classes
 div().css(component("alert"))
     .add(div().css(component("alert", "title")));

 // Modifier classes
 div().css(modifier("bordered"), modifier("compact"));

Modifiers

The Modifiers interface defines sub-interfaces for common styling flags. Components implement these interfaces to provide type-safe modifier methods:

 // Components implement modifier interfaces
 Card card = card()
     .bordered()      // from Modifiers.Bordered
     .compact()       // from Modifiers.Compact
     .fullHeight();   // from Modifiers.FullHeight

 // Toggle modifiers conditionally
 Alert alert = alert("Warning")
     .inline(isInlineMode)
     .plain(!hasIcon);

Available modifier interfaces include:

  • Bordered, Box, Center, Compact, Disabled
  • Fill, FullHeight, FullWidth, Gutter
  • Horizontal, Inline, Invalid
  • NoFill, NoPadding, NoOffset
  • Padding, PageInsets, Plain, Primary
  • Readonly, Required, Secondary, Static, Sticky, Vertical

Responsive Breakpoints

Use Breakpoint for responsive design:

 // Determine current breakpoint
 Breakpoint current = Breakpoint.breakpoint(window.innerWidth);

 // Apply breakpoint-specific styles
 if (current == Breakpoint.lg || current == Breakpoint.xl) {
     showDesktopLayout();
 }

 // Use Breakpoints container for responsive values
 Breakpoints<Integer> columns = new Breakpoints<Integer>()
     .default_(1)
     .sm(2)
     .md(3)
     .lg(4);

 int cols = columns.get(current);

CSS Variables

PatternFly uses CSS custom properties (variables) for theming. The Variable class provides type-safe access:

 // Create a typed variable
 Variable<String> colorVar = new Variable<>("--pf-v6-global--primary-color--100");

 // Apply variables to elements
 Variables variables = new Variables();
 variables.set(colorVar, "#0066cc");
 element.style.cssText = variables.toCss();

Colors and Sizes

Use enum constants for consistent colors and sizes:

 // Colors
 Badge badge = badge("New")
     .color(Color.blue);

 Label label = label("Success")
     .color(Color.green);

 // Sizes
 Button button = button("Click me")
     .size(Size.lg);

 Title title = title(1, "Heading")
     .size(Size._2xl);

Typed Modifiers

Use TypedModifier for type-safe modifier application:

 TypedModifier<Size> sizeModifier = new TypedModifier<>(
     "size",
     size -> "pf-m-" + size.value
 );

 // Apply to element
 element.classList.add(sizeModifier.modifier(Size.lg));

Additional Enums

The package includes enums for specific styling concerns:

  • Brightness - Light/dark theme variants
  • ExpandableModifier - Expandable/non-expandable section modifier
  • GridBreakpoint - Responsive grid breakpoints for data list and table
  • Inset - Inset spacing sizes for component padding
  • NotificationStatus - Notification read/unread/attention status
  • Orientation - Horizontal/vertical orientation
  • Padding - Padding/no-padding modifier
  • Placement - Popover/tooltip placement positions (top, bottom, start, end)
  • Rect - Simple width/height rectangle value type
  • Status - Status colors (success, warning, danger, info, custom)
  • Sticky - Sticky positioning (top/bottom)
  • Theme - Dark/light theme enumeration
  • Visibility - Element visibility states
  • Width - Column width percentages for table cells
See Also: