def _transition_stage(self, step, total_steps,
                          brightness=None, color=None):
        """
        Get a transition stage at a specific step.

        :param step: The current step.
        :param total_steps: The total number of steps.
        :param brightness: The brightness to transition to (0.0-1.0).
        :param color: The color to transition to.
        :return: The stage at the specific step.
        """
        if brightness is not None:
            self._assert_is_brightness(brightness)
            brightness = self._interpolate(self.brightness, brightness,
                                           step, total_steps)

        if color is not None:
            self._assert_is_color(color)
            color = Color(*[self._interpolate(self.color[i], color[i],
                                              step, total_steps)
                            for i in range(3)])

        return {'brightness': brightness, 'color': color}