original_string: public function styles($style = null, $definition = null)
      {
          if ($style === null && $definition === null) {
              return static::$_styles;
          }
          if (is_string($style) && $definition === null) {
              return isset(static::$_styles[$style]) ? static::$_styles[$style] : null;
          }
          if ($definition === false) {
              unset(static::$_styles[$style]);
  
              return true;
          }
          static::$_styles[$style] = $definition;
  
          return true;
      }
code: public function styles($style = null, $definition = null)
      {
          if ($style === null && $definition === null) {
              return static::$_styles;
          }
          if (is_string($style) && $definition === null) {
              return isset(static::$_styles[$style]) ? static::$_styles[$style] : null;
          }
          if ($definition === false) {
              unset(static::$_styles[$style]);
  
              return true;
          }
          static::$_styles[$style] = $definition;
  
          return true;
      }
code_tokens: public function styles ( $ style = null , $ definition = null ) { if ( $ style === null && $ definition === null ) { return static :: $ _styles ; } if ( is_string ( $ style ) && $ definition === null ) { return isset ( static :: $ _styles [ $ style ] ) ? static :: $ _styles [ $ style ] : null ; } if ( $ definition === false ) { unset ( static :: $ _styles [ $ style ] ) ; return true ; } static :: $ _styles [ $ style ] = $ definition ; return true ; }
docstring: Get the current styles offered, or append new ones in.
  
  ### Get a style definition
  
  ```
  $output->styles('error');
  ```
  
  ### Get all the style definitions
  
  ```
  $output->styles();
  ```
  
  ### Create or modify an existing style
  
  ```
  $output->styles('annoy', ['text' => 'purple', 'background' => 'yellow', 'blink' => true]);
  ```
  
  ### Remove a style
  
  ```
  $this->output->styles('annoy', false);
  ```
  
  @param string|null $style The style to get or create.
  @param array|bool|null $definition The array definition of the style to change or create a style
  or false to remove a style.
  @return mixed If you are getting styles, the style or null will be returned. If you are creating/modifying
  styles true will be returned.
docstring_tokens: Get the current styles offered or append new ones in .