class_docstr: A callable for converting CSS declarations to ExcelWriter styles
  
  Supports parts of CSS 2.2, with minimal CSS 3.0 support (e.g. text-shadow),
  focusing on font styling, backgrounds, borders and alignment.
  
  Operates by first computing CSS styles in a fairly generic
  way (see :meth:`compute_css`) then determining Excel style
  properties from CSS properties (see :meth:`build_xlstyle`).
  
  Parameters
  ----------
  inherited : str, optional
      CSS declarations understood to be the containing scope for the
      CSS processed by :meth:`__call__`.
class_docstr_tok: ["A","callable","for","converting","CSS","declarations","to","ExcelWriter","styles","Supports","parts","of","CSS","2.2",",","with","minimal","CSS","3.0","support","(","e.g",".","text-shadow",")",",","focusing","on","font","styling",",","backgrounds",",","borders","and","alignment",".","Operates","by","first","computing","CSS","styles","in","a","fairly","generic","way","(","see",":","meth",":","`","compute_css","`",")","then","determining","Excel","style","properties","from","CSS","properties","(","see",":","meth",":","`","build_xlstyle","`",")",".","Parameters","--","--","--","--","--","inherited",":","str",",","optional","CSS","declarations","understood","to","be","the","containing","scope","for","the","CSS","processed","by",":","meth",":","`","__call__","`","."]
code: def build_border(
      self, props: Mapping[str, str]
  ) -> dict[str, dict[str, str | None]]:
      return {
          side: {
              "style": self._border_style(
                  props.get(f"border-{side}-style"),
                  props.get(f"border-{side}-width"),
                  self.color_to_excel(
                      props.get(f"border-{side}-color")
                  ),
              ),
              "color": self.color_to_excel(
                  props.get(f"border-{side}-color")
              ),
          }
          for side in ["top", "right", "bottom", "left"]
      }
  
imports: from __future__ import annotations
  from functools import lru_cache, reduce
  import itertools
  import re
  from typing import Any, Callable, Hashable, Iterable, Mapping, Sequence, cast
  import warnings
  import numpy
  from pandas._libs.lib import is_list_like
  from pandas._typing import IndexLabel, StorageOptions
  from pandas.util._decorators import doc
  from pandas.util._exceptions import find_stack_level
  from pandas.core.dtypes import missing
  from pandas.core.dtypes.common import is_float, is_scalar
  from pandas import DataFrame, Index, MultiIndex, PeriodIndex
  import pandas.core.common
  from pandas.core.shared_docs import _shared_docs
  from pandas.io.formats._color_data import CSS4_COLORS
  from pandas.io.formats.css import CSSResolver, CSSWarning
  from pandas.io.formats.format import get_level_lengths
  from pandas.io.formats.printing import pprint_thing
label_desc: Use image node_id 8 for calling the CSSToExcelConverter obj's underlying member method code with example usage: obj.build_border(props) and returns: unknown