.. _styling: Styling ======= Styling Functions ----------------- One of the easiest ways to apply styling to components is to use the styling functions available. These functions take a component and return the same component, but with additional styling applied. .. code-block:: python def index(state: State) -> Page: return Page(state, [ float_right(Button("Quit", index)) ]) The above example shows how to use the ``float_right`` function to make the button align on the right hand side of the screen. The following functions are available: * ``float_left`` * ``float_right`` * ``bold`` * ``italic`` * ``underline`` * ``strikethrough`` * ``monospace`` * ``small_font`` * ``large_font`` * ``change_color`` * ``change_background_color`` * ``change_text_size`` * ``change_text_font`` * ``change_text_align`` * ``change_text_decoration`` * ``change_text_transform`` * ``change_margin`` * ``change_border`` * ``change_padding`` * ``change_width`` * ``change_height`` Keyword Parameters ------------------ Another way to style components is to use keyword parameters. Any component can take `style_` prefixed keyword parameters. For example: .. code-block:: python def index(state: State) -> Page: return Page(state, [ Button("Quit", index, style_text_color="red", float='right') ]) The example above makes the text red and floats the button to the right. CSS Style Tags -------------- Since you can embed HTML into any ``Page`` component, you can also embed CSS style tags. .. code-block:: python def index(state: State) -> Page: return Page(state, [ """ """ ]) This is a more dramatic change, since it will update all buttons across the entire page. CSS Classes ----------- You can narrow down the styling by using CSS classes. You can add a class to any component using the ``classes`` keyword parameter. You can then use the class name in your CSS style. .. code-block:: python # Global Constant for cleaner, reusable code STYLE = """ """ def index(state: State) -> Page: return Page(state, [ STYLE, Button("Quit", index, classes="quit-button") ]) Don't forget to include the ``STYLE`` constant in every page that uses the ``quit-button`` class.