# Core concepts - extension and coverage

When `@icestack/ui` was designed, the purpose was to create a very flexible `Css` component framework generator.

It provides us with a set of preset solutions by default that we can use directly out of the box, but its magic goes far beyond that.

Based on the idea of `CssInJs`, `@icestack/ui` has built a set of powerful style compilation capabilities.

This gives us the flexibility and freedom to generate the styles we want.

We can do this by passing in parameters:

- Generate a variety of themes, including but not limited to `Light`, `Dark`, `Tritanopia`, `Dimmed` and other themes you want

- You can also add different theme colors to the control, such as `btn-primary`, `btn-secondary`, `btn-accent` the theme color you want

- You can also provide them with more sizes including but not limited to `xs`, `sm`, `md`, `lg`, like `xl`, `2xl`, `3xl`

- More shapes not limited to `square`, `circle`

- It can also easily extend and cover the original style