• Customization

    @erikt/ui lives in a @layer. Any styles you write outside of a layer beat it.

    How it works

    Everything @erikt/ui ships sits inside @layer ui. The cascade ranks unlayered styles above every layer, so plain CSS overrides any of it. No !important, no specificity games.

    /* erikt/ui internals, low priority */
    @layer ui {
      button {
        border-radius: 8px;
      }
    }
    
    /* your styles, always win */
    button {
      border-radius: 0;
    }

    Overriding styles

    Put your overrides in a plain stylesheet loaded after @erikt/ui. Any element or class it styles is fair game.

    <link rel="stylesheet" href="ui.css" />
    <link rel="stylesheet" href="your-styles.css" />

    Or inline in a <style> tag, or inside your own @layer as long as it is declared after erikt/ui in the layer order.

    Example

    A default button next to one with border-radius: 0 from a local override.

    /* your-styles.css */
    button {
      border-radius: 0;
    }

    The same works for spacing, font sizes, colors, transitions, anything else. Tokens like --ui-primary go further. Change one and every component that reads it updates at once. See Themes for the full list.

    Search 5021 icons

    Type a name to find icons from the Tabler icon set.